logo

OrderedDict in Python

Ein OrderedDict ist eine Wörterbuchunterklasse, die sich die Reihenfolge merkt, in der Schlüssel zuerst eingefügt wurden. Der einzige Unterschied zwischen dict() und OrderedDict() liegt in ihrer Handhabung der Schlüsselreihenfolge in Python .

OrderedDict vs. dict in Python

„OrderedDict“ behält die Reihenfolge bei, in der Schlüssel hinzugefügt werden, und stellt so sicher, dass die Reihenfolge während der Iteration erhalten bleibt. Im Gegensatz dazu garantiert ein Standardwörterbuch bei der Iteration keine bestimmte Reihenfolge und stellt Werte in einer willkürlichen Reihenfolge bereit. „OrderedDict“ zeichnet sich dadurch aus, dass die ursprüngliche Einfügereihenfolge der Elemente beibehalten wird.



Ganzzahl in String-Java umwandeln

Beispiel: In diesem Beispiel demonstriert der folgende Code den Unterschied zwischen einem regulären Wörterbuch („dict“) und einem geordneten Wörterbuch („OrderedDict“). Zuerst werden die Elemente in einem regulären Wörterbuch („d“) gedruckt, wobei die Reihenfolge der Einfügung nicht garantiert ist.

Python
# 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)>

Ausgabe:

  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>

Python-Wörterbuch bestellt

Es gibt hier verschiedene wichtige Punkte im Zusammenhang mit der Bestellung von Python-Wörterbuch, wir diskutieren einige wichtige Punkte im Zusammenhang damit Python-Wörterbuch Bestellen Sie die folgenden.



  1. Schlüsselwertänderung
  2. Löschen und erneutes Einfügen
  3. Gleichheitsvergleich
  4. OrderedDict Umkehrung
  5. OrderedDict Popitem Last
  6. Schlüsseleinfügung an beliebiger Position
  7. Sammlungsmodul

Schlüsselwertänderung in der Reihenfolge des Python-Wörterbuchs

Wenn der Wert eines bestimmten Schlüssels geändert wird, bleibt die Position des Schlüssels in OrderedDict unverändert. Diese Python-Methode demonstriert das Ändern des Werts, der einem Schlüssel in einem OrderedDict zugeordnet ist.

Beispiel : In diesem Beispiel verwendet der folgende Python-Code ein OrderedDict, um die Änderung des mit einem bestimmten Schlüssel verknüpften Werts zu demonstrieren. Zunächst wird ein OrderedDict mit den Schlüsseln „a“ bis „d“ und den jeweiligen Werten 1 bis 4 erstellt.

Python
# 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)>

Ausgabe:



  Before:  a 1 b 2 c 3 d 4   After:  a 1 b 2 c 5 d 4>

Gleichheitsvergleich in Python Wörterbuchreihenfolge

OrderedDicts in Python können nicht nur anhand ihres Inhalts, sondern auch unter Berücksichtigung der Einfügungsreihenfolge auf Gleichheit verglichen werden. Dies ist nützlich, wenn Sie zwei OrderedDicts für beide Schlüssel-Wert-Paare und deren Reihenfolge vergleichen.

Beispiel: In diesem Beispiel erstellt der Code zwei OrderedDicts, „od1“ und „od2“, mit unterschiedlichen Reihenfolgen von Schlüssel-Wert-Paaren. Es zeigt dann, dass die Einfügungsreihenfolge berücksichtigt wird, wenn sie mit dem Operator „==“ auf Gleichheit verglichen werden, was zu „Falsch“ führt.

Größe von Python
Python
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)>

Ausgabe :

False>

OrderedDict Umkehrung in der Reihenfolge des Python-Wörterbuchs

Nach dem Erstellen eines OrderedDict wird dasreverse>Es wird eine Methode angewendet, die die Reihenfolge der Schlüssel-Wert-Paare umkehrt. Die nachfolgende Schleife druckt die Elemente in umgekehrter Reihenfolge und unterstreicht damit die Fähigkeit von OrderedDict, Umkehrvorgänge zu erleichtern. OrderedDicts können mit dem umgekehrt werdenreverse>Methode. Dadurch wird die Reihenfolge der Schlüssel-Wert-Paare im Wörterbuch umgekehrt.

Beispiel : In diesem Beispiel verwendet der folgende Code ein OrderedDict und kehrt seine Schlüssel-Wert-Paare mithilfe der Methode „reverse“ um. Die nachfolgende Schleife druckt die Elemente in umgekehrter Reihenfolge, was zur Ausgabe führt: „c 3, b 2, a 1“.

Python
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)>

Ausgabe :

 c 3, b 2, a 1>

OrderedDict Popitem() und Reihenfolge des Python-Wörterbuchs

Der popitem()>Methode in OrderedDict kann mit dem verwendet werdenlast>Parameter, um das zuletzt eingefügte Schlüssel-Wert-Paar zu entfernen und zurückzugeben. Dies ist nützlich, wenn Sie Artikel nach dem Last-In-First-Out-Prinzip verarbeiten möchten. Die Verwendung von „popitem(last=True)“ für ein OrderedDict würde das zuletzt hinzugefügte Element entfernen und zurückgeben, was Flexibilität bei der Verwaltung der Reihenfolge der Elemente bietet.

Beispiel : In diesem Beispiel verwendet der folgende Code ein OrderedDict und wendet die Methode „popitem“ mit „last=True“ an, um das zuletzt eingefügte Schlüssel-Wert-Paar zu entfernen und zu speichern. Anschließend wird das entfernte Element gedruckt, was zur Ausgabe führt: „(‚c‘, 3)“.

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

Ausgabe :

('c', 3)>

Schlüsseleinfügung an beliebiger Position In Python-Wörterbuch bestellt

OrderedDict ermöglicht das Einfügen eines neuen Schlüssels an einer bestimmten Position mithilfe vonmove_to_end>Undmove_to_start>Methoden. Diese Flexibilität ermöglicht eine dynamische Neuordnung der Schlüssel basierend auf Nutzung oder Priorität .

Beispiel : In diesem Beispiel verwendet der folgende Python-Code ein OrderedDict, um ein Wörterbuch mit geordneten Schlüssel-Wert-Paaren zu erstellen. Anschließend wird die Methode „move_to_end“ verwendet, um die Taste „a“ an das Ende und die Taste „b“ an den Anfang zu verschieben.

Karte in Java
Python
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)>

Ausgabe :

b 2, c 3, a 1>

Löschen und erneutes Einfügen in Python-Wörterbuch bestellt

Durch Löschen und erneutes Einfügen desselben Schlüssels wird dieser wie OrderedDict nach hinten verschoben, die Einfügereihenfolge bleibt jedoch erhalten. Diese Methode veranschaulicht Lösch- und Wiedereinfügevorgänge in einem Python OrderedDict. Zunächst füllt es das OrderedDict mit Schlüssel-Wert-Paaren, löscht einen Eintrag, druckt das aktualisierte OrderedDict und fügt anschließend den gelöschten Eintrag erneut ein, um die geordnete Natur des Wörterbuchs zu demonstrieren.

Beispiel : In diesem Beispiel demonstriert der folgende Python-Code das Löschen, erneute Einfügen und Drucken von Elementen in einem OrderedDict. Es druckt zuerst die OrderedDict-Elemente, löscht dann den Eintrag mit der Taste „c“, druckt das aktualisierte OrderedDict und fügt schließlich „c“ mit seinem Wert erneut ein, wodurch das OrderedDict erneut gedruckt wird.

Python
# 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)>

Ausgabe:

  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>

Sammlungsmodul in Python Wörterbuchreihenfolge

OrderedDict ist Teil von Sammlungsmodul in Python. Es bietet alle Methoden und Funktionen eines regulären Wörterbuchs sowie einige zusätzliche Methoden, die die Reihenfolge der Elemente nutzen. Hier sind einige Beispiele für die Verwendung von OrderedDict in Python:

Beispiel : In diesem Beispiel verwendet der folgende Code ein OrderedDict, um ein Wörterbuch mit geordneten Schlüssel-Wert-Paaren zu erstellen. Es fügt am Ende ein neues Element „d“ hinzu und fügt am Anfang die Elemente „e“ und „f“ ein, wobei „e“ nach vorne verschoben wird. Die letzte Schleife druckt die Wörterbuchelemente in der Reihenfolge, in der sie hinzugefügt wurden.

Python
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)>

Ausgabe:

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

Zeitkomplexität:

  • Artikel (Schlüssel) abrufen: O(1)
  • Element festlegen (Schlüssel, Wert): O(1)
  • Element(Schlüssel) löschen: An)
  • Wiederholung: An)

Raumkomplexität: An)

OrderedDict ist eine Wörterbuchunterklasse in Python, die sich die Reihenfolge merkt, in der Elemente hinzugefügt wurden. In einem regulären Python-Wörterbuch ist die Reihenfolge der Elemente nicht garantiert und kann sich zwischen verschiedenen Programmläufen oder verschiedenen Python-Versionen ändern. Ein OrderedDict behält jedoch die Reihenfolge der Elemente bei, in der sie hinzugefügt wurden, auch wenn später neue Elemente hinzugefügt oder vorhandene Elemente geändert werden.

Andere Überlegungen

  • Geordnetes Diktat in Python Version 2.7 verbraucht mehr Speicher als normales Diktat. Dies ist auf die zugrunde liegende Implementierung einer doppelt verknüpften Liste zur Beibehaltung der Reihenfolge zurückzuführen. In Python 2.7 ist Ordered Dict keine Dict-Unterklasse, sondern ein spezialisierter Container aus dem Collections-Modul.
  • Ab Python 3.7 ist die Einfügereihenfolge von Python-Wörterbüchern garantiert.
  • Ordered Dict kann mit Hilfe von als Stapel verwendet werden ich trinke Funktion. Versuchen Sie, den LRU-Cache mit Ordered Dict zu implementieren.