[pyar] sort en diccionario

Pablo Ziliani pablo en kultroom.com
Mar Nov 30 18:07:43 ART 2010


On 11/30/2010 05:52 PM, Mario Colque wrote:
> Amigos, como están?
>
> tengo un problema para ordenar un diccionario algo compuesto.
>
> este es mi dic
>
> d = {'a':{'s': 12}, 'b':{'s': 43}, 'c':{'s':564}, 'd':{'s': 23},
> 'e':{'s': 8746}}
>
> y quisiera ordenarlo por el valor de s. Es decir que quede así:
>
> d = {'a':{'s': 12}, 'd':{'s': 23}, 'b':{'s': 43}, 'c':{'s':564},
> 'e':{'s': 8746}}
>
> leí un par de tutoriales y artículos relacionados usando sort() pero
> no consigo hacerlo.

sort opera sobre listas (de hecho es un método de list), los 
diccionarios de python no son ordenables, así que jamás conseguirás nada 
por ese lado.
Lo que podés hacer es usar otro tipo de datos. Si estás en python 2.7+ 
podés usar collections.OrderedDict()* si no, vas a tener que crear un 
tipo propio o repensar tus necesidades (quizás te alcance con una lista 
o un namedtuple). Fijate que al pie del PEP que pongo acá abajo hay 
links a varias implementaciones.

* http://www.python.org/dev/peps/pep-0372/



More information about the pyar mailing list