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

Vittorio Spina vittorio.spina a gmail.com
Mar 17 Lug 2012 18:42:26 CEST


ho risolto in maniera un po' sghilemba ma funzionante.
Per l'enorme dizionario disordinato, mi sono creato una lista di tutte 
le voci ordinate /SortedList/ con l'esempio di Marco (che segue) e 
infine scorro ordinatamente il dizionario con un semplice for
/for elem in SortedList:
     print Dict[elem]/
non sarà un capolavoro, ma funziona ed è già cosa buona a quest'ora :)
grazie!
Vittorio

Il 17/07/2012 17:42, Marco Beri ha scritto:
> 2012/7/17 Vittorio Spina <vittorio.spina a gmail.com 
> <mailto: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
>
>
>
>
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python

-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20120717/5ab378c3/attachment-0001.html>


Maggiori informazioni sulla lista Python