[Python-es] Practica con lista de diccionarios.

Jesús Espino jespinog en gmail.com
Sab Oct 26 19:41:40 CEST 2013


Hola,

Esto se debe a que en python los diccionarios no están ordenados, si
quieres tener el mismo efecto que un diccionario ordenado puedes usar o una
lista de tuplas, o mejor aun OrderedDict del modulo collections [1].

Un saludo.

[1] http://docs.python.org/2/library/collections.html#ordereddict-objects


2013/10/26 kausdiv <kausdiv en gmail.com>

>  Hola amigos.
>
> Estoy haciendo para practicar una especie de lista de contactos.
> Estoy haciendo con una lista de diccionarios que guardo y abro con pickle.
>
> Ejemplo de estructura:
> d = [{'Nombre': 'Antonio','Apellidos': 'F. F.'},
>        {'Nombre': 'Maria','Apellidos': 'A. P.','Ciudad': 'GR','Movil': '
> 600000000'},
>        {'Nombre': 'Esther','Apellidos': 'L. R.','Movil': '600111111',
> 'Tipo':'Android'} ]
>
> La idea es que cada nodo pueda tener x campos no fijos. (En el futuro será
> una base de datos mongoDB)
> *
> **Problema:* Cuando listo, los campos (clave:valor) no salen en el mismo
> orden que están introducidos: ( pego el prodedimiento de impresión y el
> resultado)  ¿ Como puedo solucionarlo para que se impriman las claves en el
> mismo orden que se meten ?
>
> def listar_todo(d):
>     i=0
>     for n in d:
>         print "-----------< Elemento %i >----------" % i
>         i+=1
>         for g in n.keys():
>             print "%s \t%s" % (g, n[g])
> ---------------------------------------------------------------
>
> -----------< Elemento 0 >----------
> Apellidos     F. F.
> Nombre     Antonio
> -----------< Elemento 1 >----------
> Apellidos     A. P.
> Nombre     Maria
> Ciudad     GR
> Movil     600000000
> -----------< Elemento 2 >----------
> Apellidos     L. R.
> Nombre     Esther
> Movil     600111111
> Tipo     Android
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20131026/0e33f69c/attachment.html>


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