logo

OrderedDict en Python

Un OrdenadoDict es una subclase de diccionario que recuerda el orden en que se insertaron las claves por primera vez. La única diferencia entre dictar() y OrderedDict() radica en su manejo del orden de las claves en Pitón .

OrderedDict vs dict en Python

`OrderedDict` mantiene la secuencia en la que se agregan claves, asegurando que el orden se conserve durante la iteración. Por el contrario, un diccionario estándar no garantiza ningún orden específico cuando se itera, proporcionando valores en una secuencia arbitraria. `OrderedDict` se distingue por conservar el orden de inserción original de los elementos.



Ejemplo: En este ejemplo, el siguiente código demuestra la diferencia entre un diccionario normal (`dict`) y un diccionario ordenado (`OrderedDict`). Primero imprime los elementos en un diccionario normal (`d`) donde no se garantiza el orden de inserción.

Pitón
# A Python program to demonstrate working of OrderedDict from collections import OrderedDict print('This is a Dict:
') d = {} d['a'] = 1 d['b'] = 2 d['c'] = 3 d['d'] = 4 for key, value in d.items(): print(key, value) print('
This is an Ordered Dict:
') 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  b 2 c 3 d 4   This is an Ordered Dict:  a 1 b 2 c 3 d 4>

Diccionario Python ordenado

Hay varios puntos importantes relacionados con el orden del diccionario de Python aquí, estamos discutiendo algunos puntos importantes relacionados con diccionario de pitón ordenando los que siguen.



¿Qué significa google?
  1. Cambio de valor clave
  2. Eliminación y reinserción
  3. Comparación de igualdad
  4. Inversión OrderedDict
  5. OrderedDict Popitem Último
  6. Inserción de clave en posición arbitraria
  7. Módulo de Colecciones

Cambio de valor clave en el orden del diccionario de Python

Si se cambia el valor de una determinada clave, la posición de la clave permanece sin cambios en OrderedDict. Este método de Python demuestra cómo cambiar el valor asociado con una clave en un OrderedDict.

Ejemplo : En este ejemplo, el siguiente código Python utiliza un OrderedDict para demostrar cómo cambiar el valor asociado con una clave específica. Inicialmente, crea un OrderedDict con las claves 'a' a 'd' y los valores respectivos del 1 al 4.

Pitón
# A Python program to demonstrate working of key # value change in OrderedDict from collections import OrderedDict print('Before:
') od = OrderedDict() od['a'] = 1 od['b'] = 2 od['c'] = 3 od['d'] = 4 for key, value in od.items(): print(key, value) print('
After:
') 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>

Comparación de igualdad en Python Orden del diccionario

OrderedDicts en Python se puede comparar en busca de igualdad no solo en función de su contenido sino también considerando el orden de inserción. Esto resulta útil al comparar dos OrderedDicts para ambos pares clave-valor y su orden.

cadena entera

Ejemplo: en este ejemplo, el código crea dos OrderedDicts, `od1` y `od2`, con diferentes ordenamientos de pares clave-valor. Luego demuestra que el orden de inserción se considera al compararlos para determinar su igualdad usando el operador `==`, lo que da como resultado `False`.

Pitón
from collections import OrderedDict # Create two ordered dictionaries with different orderings od1 = OrderedDict([('a', 1), ('b', 2), ('c', 3)]) od2 = OrderedDict([('c', 3), ('b', 2), ('a', 1)]) # Compare the ordered dictionaries for equality print(od1 == od2)>

Producción :

False>

Inversión OrderedDict en el orden del diccionario de Python

Después de crear un OrderedDict, elreverse>Se aplica el método, que invierte el orden de los pares clave-valor. El bucle siguiente imprime los elementos en orden inverso, destacando la capacidad de OrderedDict para facilitar las operaciones de inversión. OrderedDicts se puede revertir usando elreverse>método. Esto invierte el orden de los pares clave-valor en el diccionario.

en.siguiente java

Ejemplo : En este ejemplo, el siguiente código utiliza un OrderedDict e invierte sus pares clave-valor utilizando el método 'reverse'. El ciclo posterior imprime los elementos en orden inverso, lo que da como resultado el resultado: `c 3, b 2, a 1`.

Pitón
from collections import OrderedDict my_dict = OrderedDict([('a', 1), ('b', 2), ('c', 3)]) my_dict.reverse() for key, value in my_dict.items(): print(key, value)>

Producción :

 c 3, b 2, a 1>

OrderedDict Popitem() y Orden del diccionario Python

El popitem()>método en OrderedDict se puede utilizar con ellast>parámetro para eliminar y devolver el último par clave-valor insertado. Esto es útil cuando desea procesar elementos de manera que sean los últimos en entrar, los primeros en salir. El uso de `popitem(last=True)` en un OrderedDict eliminaría y devolvería el elemento agregado más recientemente, brindando flexibilidad en la gestión del orden de los elementos.

Ejemplo : En este ejemplo, el siguiente código utiliza un OrderedDict y aplica el método `popitem` con `last=True` para eliminar y almacenar el último par clave-valor insertado. Luego imprime el elemento eliminado, lo que genera el resultado: `('c', 3)`.

Pitón
from collections import OrderedDict my_dict = OrderedDict([('a', 1), ('b', 2), ('c', 3)]) last_item = my_dict.popitem(last=True) print(last_item)>

Producción :

lista de látex
('c', 3)>

Inserción de clave en posición arbitraria en Diccionario Python ordenado

OrderedDict permite insertar una nueva clave en una posición específica usando elmove_to_end>ymove_to_start>métodos. Esta flexibilidad permite la reordenación dinámica de claves según el uso o la prioridad. .

Ejemplo : En este ejemplo, el siguiente código Python utiliza OrderedDict para crear un diccionario con pares clave-valor ordenados. Luego emplea el método `move_to_end` para reposicionar la clave ‘a’ al final y la clave ‘b’ al principio.

Pitón
from collections import OrderedDict my_dict = OrderedDict([('a', 1), ('b', 2), ('c', 3)]) # Move key 'a' to the end my_dict.move_to_end('a') # Move key 'b' to the beginning my_dict.move_to_end('b', last=False) for key, value in my_dict.items(): print(key, value)>

Producción :

b 2, c 3, a 1>

Eliminación y reinserción en Diccionario Python ordenado

Eliminar y volver a insertar la misma clave la empujará hacia atrás ya que OrderedDict, sin embargo, mantiene el orden de inserción. Este método muestra operaciones de eliminación y reinserción en un OrderedDict de Python. Inicialmente, completa el OrderedDict con pares clave-valor, elimina una entrada, imprime el OrderedDict actualizado y posteriormente vuelve a insertar la entrada eliminada, lo que demuestra la naturaleza ordenada del diccionario.

Ejemplo : En este ejemplo, el siguiente código Python demuestra la eliminación, reinserción e impresión de elementos en un OrderedDict. Primero imprime los elementos de OrderedDict, luego elimina la entrada con la clave 'c', imprime el OrderedDict actualizado y finalmente vuelve a insertar 'c' con su valor, imprimiendo el OrderedDict nuevamente.

java convierte un número entero a una cadena
Pitón
# A Python program to demonstrate working of deletion # re-insertion in OrderedDict from collections import OrderedDict print('Before deleting:
') od = OrderedDict() od['a'] = 1 od['b'] = 2 od['c'] = 3 od['d'] = 4 for key, value in od.items(): print(key, value) print('
After deleting:
') od.pop('c') for key, value in od.items(): print(key, value) print('
After re-inserting:
') 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>

Módulo de colecciones en Python Orden del diccionario

OrderedDict es parte del módulo de colecciones en pitón. Proporciona todos los métodos y funcionalidades de un diccionario normal, así como algunos métodos adicionales que aprovechan el orden de los elementos. A continuación se muestran algunos ejemplos del uso de OrderedDict en Python:

Ejemplo : En este ejemplo, el siguiente código utiliza OrderedDict para crear un diccionario con pares clave-valor ordenados. Agrega un nuevo elemento 'd' al final e inserta los elementos 'e' y 'f' al principio, con la 'e' movida al frente. El bucle final imprime los elementos del diccionario en el orden en que fueron agregados.

Pitón
from collections import OrderedDict # Create an ordered dictionary of key-value pairs my_dict = OrderedDict([('a', 1), ('b', 2), ('c', 3)]) # Add a new item to the end of the dictionary my_dict['d'] = 4 # Add a new item at a specific position in the dictionary # my_dict.update({'e': 5, 'f': 6}) or below my_dict.update([('e', 5), ('f', 6)]) my_dict.move_to_end('e', last=False) # Iterate over the dictionary in the order in which items were added for key, value in my_dict.items(): print(key, value)>

Producción:

e 5 a 1 b 2 c 3 d 4 f 6>

Complejidad del tiempo:

  • Obtener artículo (Clave): O(1)
  • Establecer elemento (clave, valor): O(1)
  • Eliminar elemento (clave): En)
  • Iteración: En)

Complejidad espacial: En)

OrderedDict es una subclase de diccionario en Python que recuerda el orden en que se agregaron los elementos. En un diccionario de Python normal, el orden de los elementos no está garantizado y puede cambiar entre diferentes ejecuciones del programa o diferentes versiones de Python. Sin embargo, un OrderedDict conserva el orden de los elementos tal como se agregaron, incluso si posteriormente se agregan elementos nuevos o se cambian los existentes.

Otras Consideraciones

  • El dictado ordenado en Python versión 2.7 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 dict, 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 utilizar como pila con la ayuda de Bebo función. Intente implementar el caché LRU con Ordered Dict.