Wie konvertiere ich verschachteltes OrderedDict in Dict in Python?

WBOY
Freigeben: 2023-08-29 23:09:17
nach vorne
648 Leute haben es durchsucht

Wie konvertiere ich verschachteltes OrderedDict in Dict in Python?

Python ist eine beliebte Programmiersprache, die in einer Vielzahl von Anwendungen weit verbreitet ist, darunter Webentwicklung, Datenwissenschaft und maschinelles Lernen. Seine Einfachheit, Flexibilität und Benutzerfreundlichkeit machen es zu einer ausgezeichneten Wahl für Entwickler. Eine Funktion, die Python auszeichnet, ist die OrderedDict-Klasse, eine Wörterbuch-Unterklasse, die sich die Reihenfolge merkt, in der Elemente eingefügt werden. In einigen Fällen müssen wir jedoch möglicherweise das verschachtelte OrderedDict zur weiteren Verarbeitung der Daten in ein normales Diktat konvertieren.

In diesem Tutorial erklären wir, was ein verschachteltes OrderedDict ist und warum es notwendig ist, es in ein normales Wörterbuch umzuwandeln. Wir führen Sie in den Prozess der Konvertierung eines verschachtelten OrderedDict in ein Wörterbuch durch eine rekursive Methode ein. Wir stellen außerdem Beispiele für Verwendungscode bereit und erläutern die Vorteile der Verwendung eines normalen Wörterbuchs anstelle eines verschachtelten OrderedDict. Tauchen wir also in den nächsten Artikel ein und erfahren Sie mehr über die Konvertierung eines verschachtelten OrderedDict in ein Wörterbuch.

Was ist OrderedDict?

OrderedDict ist eine Unterklasse des regulären Wörterbuchs, in der die Reihenfolge der Elemente beibehalten wird. Dies bedeutet, dass die Elemente in einem OrderedDict in der Reihenfolge gespeichert werden, in der sie dem Wörterbuch hinzugefügt wurden.

Lassen Sie uns nun mit der Erläuterung verschachtelter geordneter Wörterbücher fortfahren. Wie der Name schon sagt, ist ein verschachteltes geordnetes Wörterbuch ein geordnetes Wörterbuch, das ein anderes geordnetes Wörterbuch enthält. Dies bedeutet, dass die Werte im externen geordneten Wörterbuch selbst geordnete Wörterbücher sind. Dies ist eine nützliche Datenstruktur zur Darstellung verschachtelter oder hierarchischer Daten.

Hier ist ein Beispiel für ein verschachteltes OrderedDict:

from collections import OrderedDict

nested_odict = OrderedDict({
    'Name': 'John Doe',
    'Age': 25,
    'Contact': OrderedDict({
        'Email': 'johndoe@example.com',
        'Phone': '123-456-7890'
    }),
    'Address': OrderedDict({
        'Street': '123 Main St',
        'City': 'Anytown',
        'State': 'CA',
        'Zip': '12345'
    })
})
Nach dem Login kopieren

Im obigen Beispiel haben wir ein Nested OrderedDict erstellt, um Informationen über eine Person darzustellen, einschließlich Name, Alter, Kontaktinformationen und Adresse. Die Werte der Schlüssel „Kontakt“ und „Adresse“ sind selbst OrderedDicts.

Die Struktur eines verschachtelten geordneten Wörterbuchs kann wie folgt aussehen:

{
    'Name': 'John Doe',
    'Age': 25,
    'Contact': {
        'Email': 'johndoe@example.com',
        'Phone': '123-456-7890'
    },
    'Address': {
        'Street': '123 Main St',
        'City': 'Anytown',
        'State': 'CA',
        'Zip': '12345'
    }
}
Nach dem Login kopieren

Da wir nun die Struktur eines verschachtelten geordneten Wörterbuchs verstanden haben, wollen wir verstehen, wie dieses verschachtelte geordnete Wörterbuch mithilfe der rekursiven Methode in ein normales Wörterbuch umgewandelt wird.

Wie konvertiert man verschachteltes OrderedDict in ein Diktat?

Eine Möglichkeit, ein verschachteltes OrderedDict in ein Diktat umzuwandeln, ist die Verwendung der Rekursion. Rekursion ist eine Programmiertechnik, die Funktionsaufrufe selbst beinhaltet. In diesem Fall könnten wir eine Funktion schreiben, die sich selbst rekursiv aufruft, um jedes verschachtelte OrderedDict in ein normales Diktat umzuwandeln.

Hier ist ein Beispiel, das zeigt, wie man ein verschachteltes OrderedDict mithilfe von Rekursion in ein Diktat umwandelt:

def nested_odict_to_dict(nested_odict):
   # Convert the nested ordered dictionary into a regular dictionary and store it in the variable "result".
   result = dict(nested_odict)

   # Iterate through each key-value pair in the dictionary.
   for key, value in result.items():

       # Check if the value is an instance of the OrderedDict class.
       if isinstance(value, OrderedDict):
           # If the value is an instance of the OrderedDict class, recursively call the function on that value and store the returned dictionary in the "result" dictionary.
           result[key] = nested_odict_to_dict(value)
   return result
Nach dem Login kopieren

Im obigen Code erstellen wir zunächst ein reguläres Wörterbuch aus einem verschachtelten OrderedDict mithilfe der integrierten Funktion dict(). Anschließend durchlaufen wir jedes Schlüssel-Wert-Paar im Wörterbuch und prüfen, ob der Wert eine Instanz von OrderedDict ist. Wenn dies der Fall ist, rufen wir dieselbe Funktion rekursiv für diesen Wert auf und ersetzen den Wert im ursprünglichen Wörterbuch durch das zurückgegebene reguläre Wörterbuch.

Lassen Sie uns den Code aufschlüsseln und verstehen, wie er funktioniert:

result = dict(nested_odict)
Nach dem Login kopieren

Diese Codezeile erstellt ein neues Wörterbuch (Ergebnis), indem sie das übergebene geordnete Wörterbuch (nested_odict) in ein normales Wörterbuch umwandelt.

for key, value in result.items():
    if isinstance(value, OrderedDict):
        result[key] = nested_odict_to_dict(value)
Nach dem Login kopieren

Diese Schleife durchläuft alle Elemente im resultierenden Wörterbuch. Für jedes Schlüssel-Wert-Paar wird geprüft, ob der Wert ein geordnetes Wörterbuch ist. Wenn dies der Fall ist, ruft sich die Funktion rekursiv auf, übergibt das sortierte Wörterbuch als Argument und ersetzt die Werte im Ergebnis durch das zurückgegebene Wörterbuch.

Lassen Sie es uns nun anhand eines Beispiels verstehen.

Beispiel für die Konvertierung eines verschachtelten OrderedDict in Dict

Nehmen wir dasselbe Nested OrderedDict, das wir zuvor gesehen haben, und konvertieren es mit der Funktion „nested_odict_to_dict()“ in ein reguläres Wörterbuch:

from collections import OrderedDict

nested_odict = OrderedDict({
    'Name': 'John Doe',
    'Age': 25,
    'Contact': OrderedDict({
        'Email': 'johndoe@example.com',
        'Phone': '123-456-7890'
    }),
    'Address': OrderedDict({
        'Street': '123 Main St',
        'City': 'Anytown',
        'State': 'CA',
        'Zip': '12345'
    })
})

regular_dict = nested_odict_to_dict(nested_odict)
print(regular_dict)
Nach dem Login kopieren

Der obige Codeausschnitt erstellt ein mehrstufiges verschachteltes geordnetes Wörterbuch „nested_odict“ und ruft eine Funktion „nested_odict_to_dict“ auf, um es in ein reguläres verschachteltes Wörterbuch umzuwandeln. Die Ausgabe dieses Codes ist ein verschachteltes Wörterbuch mit denselben Schlüsseln und Werten wie das ursprüngliche geordnete Wörterbuch nested_odict, jedoch ohne die Ordnungsgarantien.

Ausgabe

{
    'Name': 'John Doe',
    'Age': 25,
    'Contact': {
        'Email': 'johndoe@example.com',
        'Phone': '123-456-7890'
    },
    'Address': {
        'Street': '123 Main St',
        'City': 'Anytown',
        'State': 'CA',
        'Zip': '12345'
    }
}
Nach dem Login kopieren

Wie Sie sehen können, wurde das Nested OrderedDict mit der Funktion nested_odict_to_dict() erfolgreich in ein reguläres Wörterbuch konvertiert.

Fazit

In diesem Artikel haben wir besprochen, wie man ein verschachteltes OrderedDict mithilfe der rekursiven Methode in ein reguläres Diktat umwandelt. Wir haben erklärt, was OrderedDict ist und was verschachtelte OrderedDicts sind. Wir stellen auch ein Beispiel für ein verschachteltes OrderedDict bereit, das persönliche Informationen darstellt. Um das verschachtelte OrderedDict in ein reguläres Diktat umzuwandeln, haben wir mithilfe der Rekursion eine Funktion geschrieben, die sich selbst aufruft, um jedes verschachtelte OrderedDict in ein reguläres Diktat umzuwandeln. Wir stellen auch ein Beispiel bereit, das zeigt, wie Sie diese Funktion verwenden, um das zuvor erstellte verschachtelte OrderedDict in ein reguläres Diktat umzuwandeln. Durch die Konvertierung eines verschachtelten OrderedDict in ein reguläres Diktat können wir die Datenverarbeitung vereinfachen und verschiedene Vorgänge einfacher ausführen.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich verschachteltes OrderedDict in Dict in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!