[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