English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
OrderedDict es una subclase del objeto dict en Python. La única diferencia entre OrderedDict y dict es que en OrderedDict, se mantiene el orden de inserción de las claves. En el diccionario, la ordenación puede o no ocurrir.
OrderedDict es una clase estándar de la biblioteca, ubicada encollectionsen el módulo.
Para poder usarlo, primero debemos importarloConjuntoMódulo de biblioteca estándar.
import collections
En esta sección, veremos algunas operaciones sobre OrderedDict y las diferencias entre OrderedDict y Dict.
Podemos agregar algunas claves y valores a Dict y OrderedDict. En este ejemplo, podemos ver que el orden de Dict puede ser diferente. Pero para OrderedDict, se corregirá.
import collections #Crear diccionario normal my_dict = {} my_dict['AA'] = 11 my_dict['BB'] = 22 my_dict['CC'] = 33 my_dict['DD'] = 44 for item in my_dict.items(): print(item) print() #Crear diccionario ordenado my_ord_dict = collections.OrderedDict() my_ord_dict['AA'] = 11 my_ord_dict['BB'] = 22 my_ord_dict['CC'] = 33 my_ord_dict['DD'] = 44 for item in my_ord_dict.items(): print(item)
Resultado de salida
('AA', 11) ('CC', 33) ('BB', 22) ('DD', 44) ('AA', 11) ('BB', 22) ('CC', 33) ('DD', 44)
Para OrderedDict, el orden de las claves no cambiará cuando se cambie el valor especificado. Podemos ver que para el tipo de objeto Dict puede ser correcto o incorrecto.
import collections #Crear diccionario normal my_dict = {} my_dict['AA'] = 11 my_dict['BB'] = 22 my_dict['CC'] = 33 my_dict['DD'] = 44 for item in my_dict.items(): print(item) #Cambiar el valor para la clave BB my_dict['BB'] = 100 print('Después de cambiar en Dict') for item in my_dict.items(): print(item) print() #Crear diccionario ordenado my_ord_dict = collections.OrderedDict() my_ord_dict['AA'] = 11 my_ord_dict['BB'] = 22 my_ord_dict['CC'] = 33 my_ord_dict['DD'] = 44 for item in my_ord_dict.items(): print(item) #Cambiar el valor para la clave BB my_ord_dict['BB'] = 100 print('Después de cambiar en OrderedDict') for item in my_ord_dict.items(): print(item)
Resultado de salida
('AA', 11) ('BB', 22) ('CC', 33) ('DD', 44) Después de cambiar en Dict ('AA', 11) ('CC', 33) ('DD', 44) ('BB', 100) ('AA', 11) ('BB', 22) ('CC', 33) ('DD', 44) Después de cambiar en OrderedDict ('AA', 11) ('BB', 100) ('CC', 33) ('DD', 44)
Cuando se elimina un elemento de OrderedDict y se realiza la operación de reinsertación para la clave y el valor, se lo empujará de vuelta al final. Aunque mantiene el orden al insertar, para eliminar, eliminará la información de orden y se lo insertará como nuevo elemento.
import collections #Crear diccionario ordenado my_ord_dict = collections.OrderedDict() my_ord_dict['AA'] = 11 my_ord_dict['BB'] = 22 my_ord_dict['CC'] = 33 my_ord_dict['DD'] = 44 for item in my_ord_dict.items(): print(item) #Eliminar item en la clave BB my_ord_dict.pop('BB') print('Después de Eliminar') for item in my_ord_dict.items(): print(item) #re-insertando item my_ord_dict['BB'] = 22 print('Después de Re-insertando') for item in my_ord_dict.items(): print(item)
Resultado de salida
('AA', 11) ('BB', 22) ('CC', 33) ('DD', 44) Después de Eliminar ('AA', 11) ('CC', 33) ('DD', 44) Después de Re-insertando ('AA', 11) ('CC', 33) ('DD', 44) ('BB', 22)