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
Mary-Kate OlsenOriginal
2024-12-14 00:53:10191Durchsuche

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]}

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]}

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}

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!

Stellungnahme:
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