Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich ein verschachteltes Wörterbuch in Python reduzieren?

Wie kann ich ein verschachteltes Wörterbuch in Python reduzieren?

Patricia Arquette
Freigeben: 2024-12-17 00:59:24
Original
869 Leute haben es durchsucht

How Can I Flatten a Nested Dictionary in Python?

Die Komplexität entwirren: Verschachtelte Wörterbücher verflachen

Angenommen, Sie stoßen auf ein kompliziertes Wörterbuch mit verschachtelten Ebenen, das die verworrene Struktur eines Labyrinths widerspiegelt. Um dieses Wörterbuch zu durchsuchen, muss man eine clevere Technik anwenden, um es zu glätten und seine komplizierten Schichten in eine vereinfachte Form zu entwirren. Diese vereinfachte Wiedergabe stellt die zugrunde liegenden Daten auf zugänglichere und einfachere Weise offen.

Der Schlüssel zu dieser Vereinfachung liegt in der Iteration sowohl über die Schlüssel als auch über die Werte des Wörterbuchs. Durch diesen Prozess werden neue Schlüssel sorgfältig erstellt, indem der übergeordnete Schlüssel mit dem aktuellen Schlüssel verkettet wird, getrennt durch ein anpassbares Trennzeichen.

Wenn ein Wert selbst zufällig ein Wörterbuch ist, wird der Reduzierungsprozess rekursiv angewendet und nahtlos integriert seine Elemente in die abgeflachte Struktur. Wenn es sich bei dem Wert jedoch nicht um ein Wörterbuch handelt, wird er direkt an das abgeflachte Wörterbuch angehängt.

Im Wesentlichen werden die im komplexen Netz verschachtelter Wörterbücher enthaltenen Werte sorgfältig extrahiert und mit neu zugewiesenen Schlüsseln versehen, die ihre Werte widerspiegeln hierarchische Beziehungen. Das Ergebnis ist ein abgeflachtes Wörterbuch, ähnlich einer übersichtlichen Karte, in der jeder Wert mühelos anhand seines eindeutigen, neu zugewiesenen Schlüssels lokalisiert werden kann.

Um diese Abflachungstechnik weiter zu veranschaulichen, betrachten Sie das folgende Beispiel:

from collections.abc import MutableMapping

def flatten(dictionary, parent_key='', separator='_'):
    items = []
    for key, value in dictionary.items():
        new_key = parent_key + separator + key if parent_key else key
        if isinstance(value, MutableMapping):
            items.extend(flatten(value, new_key, separator=separator).items())
        else:
            items.append((new_key, value))
    return dict(items)
Nach dem Login kopieren

Bei Anwendung auf ein Wörterbuch wie:

{'a': 1, 'c': {'a': 2, 'b': {'x': 5, 'y' : 10}}, 'd': [1, 2, 3]}
Nach dem Login kopieren

Das Ergebnis ist eine Abflachung Wörterbuch:

{'a': 1, 'c_a': 2, 'c_b_x': 5, 'd': [1, 2, 3], 'c_b_y': 10}
Nach dem Login kopieren

Mit dieser Verflachungstechnik entwirrt man effektiv die Komplexität verschachtelter Wörterbücher und enthüllt die darin verborgene Struktur. Diese optimierte Darstellung ermöglicht Entwicklern ein besser zugängliches und besser verwaltbares Datenformat und erleichtert Aufgaben wie Datenanalyse, Abfrage und Datenmanipulation.

Das obige ist der detaillierte Inhalt vonWie kann ich ein verschachteltes Wörterbuch in Python reduzieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage