Diccionarios ordenados en Python

Los diccionarios ordenados son una de esas tantas funciones del lenguaje Python que están ahí, pero que por algún motivo pocos conocen (quizá porque es una característica relativamente nueva, ya que se incluye desde Python 2.7). El asunto es que mas de uno se me ha acercado debido a que han intentado introducir datos en un diccionario pero éste no conserva el orden.

La solución es el uso de OrderedDict (a partir de Python 2.7, para versiones anteriores existen varias implementaciones de OrderedDict como módulos externos). OrderedDict funciona exactamente igual que un diccionario común, incluye las mismas funciones, y tiene como diferencia que es capaz de conservar el orden de los datos según los incluimos. Si actualizamos algún valor, este mantendrá su posición, y si lo eliminamos, y luego lo volvemos a añadir, este será incluido al final del diccionario. Podemos usarlo de la siguiente manera:

from collections import OrderedDict
my_ordered_dict = OrderedDict()
my_ordered_dict['pepe'] = 2
my_ordered_dict['lolo'] = 3
print my_ordered_dict['pepe']

Si queremos instanciar nuestro diccionario ordenado con valores ordenados, entonces debemos pasarle una lista de elementos, algo así:

my_ordered_dict = OrderedDict([('pepe', 2), ('lolo', 3)])

Espero que sea de utilidad.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*