stavo svolgendo un esercizio avente questa richiesta:
Scrivere una funzione che riceve in ingresso il nome di un file di testo contenente, per ogni riga, una serie di numeri interi separati da virgola, e restituisce un dizionario che ha come chiavi i numeri che appaiono nel file e come valori degli insiemi tali che per ciascuna chiave k l’insieme associato contenga il numero di riga di ciascuna riga del file in cui appare k. Assumete che le righe del file siano numerate a partire da 1. Se il file è vuoto la funzione deve restituire un dizionario vuoto. Ad esempio se file contiene
10,-5,-5,0
10,-5,8,-3
la funzione deve restituire:
{10: {1,2}, -5: {1,2}, 0: {1}, 8: {2}, -3: {2}}
Io ho risolto l'esercizio nel seguente modo ma mi da errore, SAPETE DIRMI COSA SBAGLIO?
ho risolto il problema con il codice:
spero possa essere utile a qualcuno
Scrivere una funzione che riceve in ingresso il nome di un file di testo contenente, per ogni riga, una serie di numeri interi separati da virgola, e restituisce un dizionario che ha come chiavi i numeri che appaiono nel file e come valori degli insiemi tali che per ciascuna chiave k l’insieme associato contenga il numero di riga di ciascuna riga del file in cui appare k. Assumete che le righe del file siano numerate a partire da 1. Se il file è vuoto la funzione deve restituire un dizionario vuoto. Ad esempio se file contiene
10,-5,-5,0
10,-5,8,-3
la funzione deve restituire:
{10: {1,2}, -5: {1,2}, 0: {1}, 8: {2}, -3: {2}}
Io ho risolto l'esercizio nel seguente modo ma mi da errore, SAPETE DIRMI COSA SBAGLIO?
Python:
f=open(file,encoding='UTF-8')
d={}
count=0
for riga in f:
count+=1
mimi=riga.strip().split(',')
for elem in mimi:
if elem in d:
d[elem]=d[elem].add(count)
else:
d[elem]=set()
d[elem].add(count)
return d
Python:
f=open(file,encoding='UTF-8')
d={}
count=0
for riga in f:
count+=1
mimi=riga.strip().split(',')
for elem in mimi:
cici=int(elem)
if cici in d:
d[cici].add(count)
else:
d[cici]=set()
d[cici].add(count)
return d
Ultima modifica da un moderatore: