[Python] ordinamento di un dizionario di liste per elemento di lista

Marco Beri marcoberi a gmail.com
Mar 17 Lug 2012 17:42:26 CEST


2012/7/17 Vittorio Spina <vittorio.spina a gmail.com>

> Ciao a tutti,
> ho un dizionario di questo tipo:
> a = { "ValueName1": [a,b,c,d,e],
>         "ValueName2": [a,b,c,d,e],
>         ...
>         "ValueNamen": [a,b,c,d,s]
>       }
> in pratica per ogni elemento del dizionario, ho una lista. Ciascuna lista
> è composta di 5 elementi di tipo INTERO, il valore "e" [4] di ciascuna
> lista è sempre differente da qualsiasi altro elemento e-simo delle altre
> liste presenti nel dizionario.
> Vorrei ordinare le voci il dizionario per e....
> riassumendo se il mio dizionario fosse:
> a={"vittorio":[1,2,3,4,6], "gianni":[11,77,3,4,3], "luca":[2,4,1,5,8],
> "Marco":[2,2,3,6,1], "Antonio":[4,23,11,2,2]}
> b=ordina(a) dovrebbe fare in modo che
> b={"Marco":[2,2,3,6,1], "Antonio":[4,23,11,2,2], "gianni":[11,77,3,4,3],
> "vittorio":[1,2,3,4,6], "luca":[2,4,1,5,8]}
> Come si fa?
> io non ce la faccio!
> Aiuto vi prego!
>

Abbiamo capito! Non serve che lo chiedi tre volte :-)

>>> a={"vittorio":[1,2,3,4,6], "gianni":[11,77,3,4,3], "luca":[2,4,1,5,8],
"Marco":[2,2,3,6,1], "Antonio":[4,23,11,2,2]}
>>> sorted(a.items(),key=lambda x:x[1][4])
[('Marco', [2, 2, 3, 6, 1]), ('Antonio', [4, 23, 11, 2, 2]), ('gianni',
[11, 77, 3, 4, 3]), ('vittorio', [1, 2, 3, 4, 6]), ('luca', [2, 4, 1, 5,
8])]

Ovviamente se ti serve un dizionario ordinato devi usare una classe
apposta, tipo il SortedDict di Django.
Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20120717/3a406f83/attachment.html>


Maggiori informazioni sulla lista Python