multiple - Equivalente para LinkedHashMap en Python
matplotlib python ejemplos (4)
LinkedHashMap es la implementación de Java de una estructura de datos similar a Hashtable (dict en Python) con un orden de iteración predecible. Eso significa que durante un recorrido sobre todas las claves, se ordenan por inserción. Esto se hace mediante una lista enlazada adicional que mantiene el orden de inserción.
¿Hay un equivalente a eso en Python?
Aunque puede hacer lo mismo manteniendo una lista para realizar un seguimiento del orden de inserción, Python 2.7 y Python> = 3.1 tienen una clase OrderedDict en el módulo de colecciones.
Antes de 2.7, puedes subclase dict
esta receta .
No estoy seguro de si esto es lo que está pidiendo:
>>> dic = {1: ''one'', 2: ''two''}
>>> for k, v in dic.iteritems():
... print k, v
puede ordenar el dic en el orden de la inserción utilizando el módulo de comando ordenado .
d = ordereddict(dic, relax=True)
No lo creo; Tendrías que usar un dict más una lista. Pero podría fácilmente envolver eso en una clase y definir keys
, __getitem__
, __setitem__
, etc. para que funcione como usted desea.
Si estás en Python 2.7 o Python> = 3.1 puedes usar collections.OrderedDict en la biblioteca estándar.
Esta respuesta a la pregunta ¿Cómo recuperar elementos de un diccionario en el orden en que se insertaron? contiene una implementación de un dictado ordenado, en caso de que no esté usando Python 3.x y no quiera darse una dependencia del módulo de sorteo ordenado de terceros.