[PIPython] confronto tra dizionari

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


> On Monday 15 March 2004 10:14 pm, Simone Piunno wrote: 
> > On Monday 15 March 2004 18:20, ciccio a unical.it wrote: 
> > > Ho uno script che legge files in input, tutti dello stesso formato, 
> solo 
> > > che ciascuno contiene dei valori numerici differenti. 
> > > Dopo la lettura dei files, per ognuno di essi ottengo un dizionario del 
> > > tipo: 
> > > 
> > > {('4', '8'): '0.1', ('3', '7'): '0.1', ('2', '6'): '0.1', ('1', '5'): 
> > > '0.1'} {('4', '8'): '0.2', ('3', '9'): '0.2', ('2', '6'): '0.2', ('1', 
> > > '5'): '0.2'} 
> > > 
> > > Cio' che vorrei fare, e non so se possibile, e' raggruppare le 
> > > informazioni in un unico dizionario del tipo: 
> > > 
> > > {('4','8'):['0.1','0.2'], ('3', '7'):['0.1', '-'], ('3', 
> > > '9'):['-','0.2'], ('2', '6'):['0.1','0.2'], ('1', '5'):['0.1','0.2']} 
> > 
> > Inefficiente (neanche tanto) ma sintetico: 
> > 
> > unico = {} 
> > for k in [x for d in dizionari for x in d.keys()]: 
> >     unico[k] = [d.get(k, '-') for d in dizionari] 
> > 
> > dove "dizionari" è una sequence dei tuoi dizionari di partenza. 
>  
> Ragionevole, in effetti un po' inefficiente perche` per ogni chiave k che  
> appaia N volte il body e` eseguito ripetutamente N volte (un'altra piccola  
> inefficienza facilmente evitabile e` la "for x in d.keys()" dove "for x in 
d" 
>  
> fa lo stesso lavoro a minor prezzo:-).  Se si puo` "spendere" una riga in 
> +: 
 
 
 
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' 
 
Nel mio caso specifico io ottengo una serie di dizionari per ogni file letto. 
Si chiamano tutti matrix e non so come richiamare una specifica coppia 
chiave:valore. 
 
ernesto 
 
 

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




More information about the Python mailing list