Un OrderedDict es una subclase de diccionario que recuerda el orden en que se insertaron las claves por primera vez. La única diferencia entre dict() y OrderedDict() es que:
OrderedDict conserva el orden en que se insertan las claves. Un dictado regular no rastrea el orden de inserción y al iterarlo da los valores en un orden arbitrario. Por el contrario, OrderedDict recuerda el orden en que se insertan los elementos.
Python3
# A Python program to demonstrate working of OrderedDict from collections import OrderedDict print("This is a Dict:\n") d = {} d['a'] = 1 d['b'] = 2 d['c'] = 3 d['d'] = 4 for key, value in d.items(): print(key, value) print("\nThis is an Ordered Dict:\n") od = OrderedDict() od['a'] = 1 od['b'] = 2 od['c'] = 3 od['d'] = 4 for key, value in od.items(): print(key, value)
Producción:
This is a Dict: a 1 c 3 b 2 d 4 This is an Ordered Dict: a 1 b 2 c 3 d 4
Puntos importantes:
1. Cambio de valor de clave: si se cambia el valor de una determinada clave, la posición de la clave permanece sin cambios en OrderedDict.
Python3
# A Python program to demonstrate working of key # value change in OrderedDict from collections import OrderedDict print("Before:\n") od = OrderedDict() od['a'] = 1 od['b'] = 2 od['c'] = 3 od['d'] = 4 for key, value in od.items(): print(key, value) print("\nAfter:\n") od['c'] = 5 for key, value in od.items(): print(key, value)
Producción:
Before: a 1 b 2 c 3 d 4 After: a 1 b 2 c 5 d 4
2. Eliminación y reinserción: Eliminar y volver a insertar la misma clave la empujará hacia atrás como OrderedDict, sin embargo, mantiene el orden de inserción.
Python3
# A Python program to demonstrate working of deletion # re-insertion in OrderedDict from collections import OrderedDict print("Before deleting:\n") od = OrderedDict() od['a'] = 1 od['b'] = 2 od['c'] = 3 od['d'] = 4 for key, value in od.items(): print(key, value) print("\nAfter deleting:\n") od.pop('c') for key, value in od.items(): print(key, value) print("\nAfter re-inserting:\n") od['c'] = 3 for key, value in od.items(): print(key, value)
Producción:
Before deleting: a 1 b 2 c 3 d 4 After deleting: a 1 b 2 d 4 After re-inserting: a 1 b 2 d 4 c 3
Otras consideraciones :
- El dictado ordenado en la versión 2.7 de Python consume más memoria que el dictado normal. Esto se debe a la implementación subyacente de la lista doblemente enlazada para mantener el orden. En Python 2.7 Ordered Dict no es una subclase de dictado, es un contenedor especializado del módulo de colecciones.
- A partir de Python 3.7, se garantiza el orden de inserción de los diccionarios de Python.
- Ordered Dict se puede usar como una pila con la ayuda de la función popitem . Intente implementar el caché LRU con Ordered Dict.
Este artículo es una contribución de Sri Sanketh Uppalapati . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA