[PIPython] confronto tra dizionari

ciccio a unical.it ciccio
Ven 19 Nov 2004 15:16:43 CET


   
    
 > On Tuesday 16 March 2004 12:35 pm, ciccio a unical.it wrote:  
 >    ...  
 > > Ho provato ad utilizzare il codice di seguito ma ottengo un errore:  
 > > > import sets  
 > > > risultato = {}  
 > > > for k in sets.Set([x for d in dizionari for x in d]):  
 > > >      risultato[k] = [d.get(k, '-') for d in dizionari]  
 > >  
 > > Traceback (most recent call last):  
 > >   File "Dep_sum.py", line 33, in ?  
 > >     risultato[k] = [d.get(k, '-') for d in matrix]  
 > > AttributeError: 'tuple' object has no attribute 'get'  
 >    
 > Come ti dice chiarissimamente il messaggio d'errore, d non e` un 
dizionario,  
 >    
 > bensi` una tupla.  Ovviamente non puoi applicare a una tupla le operazioni    
 > che potresti applicare a un dizionario!  
 >    
 > > Nel mio caso specifico io ottengo una serie di dizionari per ogni file  
 >    
 > Non ci credo.  Mi pare invece che tu ottenga delle tuple, NON dei  
 > dizionari.  
 > Se fosse vero che avevi ottenuto dei dizionari, allora hai fatto qualche    
 > perversa trasformazione per renderli tuple.  
 >    
 > > letto. Si chiamano tutti matrix e non so come richiamare una specifica  
 > > coppia chiave:valore.  
 >    
 > Sara` meglio cominciare col chiarirsi come "ottieni" quelli che tu sostieni  
 >    
 > essere dizionari e invece sembrano essere tuple.  
    
 Forse ho creato un po' di confusione. Io sto cercando di recuperare dati da  
 file testuali tutti dello stesso formato. (E' uno studio di simulazione,  
 quindi a seconda delle esigenze il numero di files che vengono creati e'  
 differente, diciamo n in generale)  
 Ogni file e simile al seguente:  
    
 1        5        1        1        1        1        1        0.1        1  
 2        6        1        1        1        1        1        0.2        1  
 3        7        1        1        1        1        1        0.3        1  
 4        8        1        1        1        1        1        0.4        1  
    
 Ad ogni coppia di valori appartenete alle prime due colonne deve 
corrispondere  
 il valore specifico nella colonna 8. Per esempio (1,5)=0.1, (2,6)=0.2 ecc.    
 Avendo molti files, Potro' ottenere valori uguali o diversi per ogni coppia,  
 ma che devono comunque essere registrati, o nessun valore e quindi un simbolo  
 del tipo "-". Potro' ottenere, inoltre, nuove coppie che devo in ogni caso  
 aggiungere.  
 L'idea iniziale era quella di raggruppare i dati in dizionari(uno per file) 
in  
 cui ciascuna chiave e' una tupla ('1','5') ecc. e ciascun valore e' quello  
 presente nella colonna 8.  
    
 Poiche' i dati sono presenti in file nominati file0, file1..filen , ho creato  
 un ciclo for che per ciascun file crea un dizionario. Ma in questo modo tutti  
 i dizionari che ottengo hanno lo stesso nome perche'  
    
 for i in range(0, n):  
         infile="file%i.txt" %(i)  
         f=open(infile, "r")  
         matrix={}  
    
 Una volta ottenuti non so piu' andare avanti, perche' dovrei inserire 
ciascuna  
 tupla in un nuovo dizionario e aggiornare i suoi valori di volta in volta, ma  
 non so come aggiungere i valori senza perdere quelli precedenti e non so' 
come  
 chiamare le singole tuple, poiche' i dizionari hanno tutti lo stesso nome!  
 Inoltre non posso utilizzare il modulo sets!  
    
 Spero di esser stato un po' piu' chiaro  
    
 grazie in anticipo  
    
 ernesto  
 

-------------------------------------------------
This mail sent through IMP: http://horde.org/imp/




More information about the Python mailing list