Ordenar diccionario segú n valores.

luis miguel morillas morillas en posta.unizar.es
Jue Oct 21 22:54:17 CEST 2004


	Asunto: Re: [Python-es] Ordenar diccionario segú n valores.
	Fecha: jue, oct 21, 2004 at 01:47:02 -0700


Citando a  Victor Peinado (vitojph en gmail.com):
> On Thu, 21 Oct 2004 15:43:17 -0300, Batista, Facundo <fbatista
> unifon.com.ar> wrote:
> > [Victor Peinado]
> 
> > Un diccionario, por definición, no tiene órden (por lo tanto no lo puedes
> > ordenar generando otro diccionario):
> 
> Ya, ya lo sé. En realidad lo que hacía era ordenar las claves del
> nuevo diccionario y recorrerlo. Un poco raro, lo sé :-)
>
No,no es raro.

También hay un módulo que implementa un diccionario ordenado [1], pero no lo
he utilizado nunca. Sí que he usado a veces (orientados a la persistencia)
los BTrees de zodb.  



[1] http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/107747


> > Lo que tienes que hacer es generar una lista con los valores del
> > diccionario:
> > 
> > >>> l = d.items()
> > >>> l
> > [('a', 3), ('c', 5), ('b', 7)]
> > 
> > y luego ordenar por lo que te interese:
> > 
> > >>> l.sort()
> > >>> l
> > [('a', 3), ('b', 7), ('c', 5)]
> > >>> l.sort(key=lambda x: x[1])
> > >>> l
> > [('a', 3), ('c', 5), ('b', 7)]
> 
> Al final lo que estba ordenando era tuplas de este tipo, pero haciendo
> el tonto con un diccionario en lugar de hacerlo en una lista
> directamente. Muchas gracias por la explicación.
> 
> Saludos.
> 
> 
> 
> -- 
> Víctor Peinado || <vitojph /> || http://ieqo.org/blog
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es

-- 

Luis Miguel

No a las patentes de software en Europa
EuropeSwPatentFree
http://EuropeSwPatentFree.hispalinux.es




Más información sobre la lista de distribución Python-es