RISOLTO esercizio python

Programmazione

frame888

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?
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
ho risolto il problema con il codice:
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
spero possa essere utile a qualcuno
 
Ultima modifica da un moderatore:
#1

Mursey

Staff Forum
Utente Èlite
Grazie per aver condiviso la soluzione.
La prossima volta però usa il tag code, leggi qui.
 
#2
Stato
Discussione chiusa ad ulteriori risposte.