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