Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich verschachtelte Wörterbücher reduzieren und ihre Schlüssel in Python komprimieren?

Wie kann ich verschachtelte Wörterbücher reduzieren und ihre Schlüssel in Python komprimieren?

Mary-Kate Olsen
Freigeben: 2024-12-14 00:53:10
Original
191 Leute haben es durchsucht

How Can I Flatten Nested Dictionaries and Compress Their Keys in Python?

Verschachtelte Wörterbücher reduzieren: Schlüssel komprimieren

Im Bereich der Datenmanipulation kann die Begegnung mit verschachtelten Wörterbüchern beim Zugriff oft eine Herausforderung darstellen Daten. Ein häufiges Szenario ist die Notwendigkeit, diese komplexen Wörterbücher zu reduzieren und so eine einfachere Struktur mit komprimierten Schlüsseln zu schaffen. Für eine effiziente Datenanalyse und -verwaltung ist es von entscheidender Bedeutung, zu verstehen, wie diese Aufgabe effektiv ausgeführt werden kann.

Stellen Sie sich ein verschachteltes Wörterbuch im folgenden Format vor:

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

Unser Ziel ist es, dieses Wörterbuch in ein abgeflachtes Wörterbuch umzuwandeln Version, bei der Schlüssel komprimiert werden, um ihre hierarchische Struktur widerzuspiegeln:

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

Um dies zu erreichen, können wir einen Flattening-Algorithmus nutzen. Der Ansatz umfasst das Durchlaufen des Wörterbuchs, das Erstellen neuer Schlüssel durch Verketten von übergeordneten Schlüsseln mit untergeordneten Schlüsseln und einem Trennzeichen und schließlich das Generieren eines neuen abgeflachten Wörterbuchs.

Die Implementierung dieses Algorithmus in Python erfordert die Verwendung der Basis „collections.abc.MutableMapping“. Klasse zur Verarbeitung verschiedener Wörterbuchtypen. Hier ist eine Python-Implementierung:

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)

>>> flatten({'a': 1, 'c': {'a': 2, 'b': {'x': 5, 'y' : 10}}, 'd': [1, 2, 3]})
{'a': 1, 'c_a': 2, 'c_b_x': 5, 'd': [1, 2, 3], 'c_b_y': 10}
Nach dem Login kopieren

Durch die Verwendung dieses Algorithmus können wir verschachtelte Wörterbücher effektiv reduzieren und Schlüssel komprimieren, um eine vereinfachte Datenstruktur für eine effizientere Datenverwaltung und -analyse bereitzustellen.

Das obige ist der detaillierte Inhalt vonWie kann ich verschachtelte Wörterbücher reduzieren und ihre Schlüssel in Python komprimieren?. 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