Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich ein verschachteltes Wörterbuch reduzieren und seine Schlüssel in Python komprimieren?

Wie kann ich ein verschachteltes Wörterbuch reduzieren und seine Schlüssel in Python komprimieren?

Susan Sarandon
Freigeben: 2024-12-31 06:01:13
Original
561 Leute haben es durchsucht

How Can I Flatten a Nested Dictionary and Compress Its Keys in Python?

Verschachtelte Wörterbücher mit Tastenkomprimierung reduzieren

Wenn Sie mit komplexen Datenstrukturen in Ihrem Code arbeiten, kann es oft nützlich sein, diese zu „glätten“. für eine einfachere Handhabung. Dies gilt insbesondere für verschachtelte Wörterbücher, bei denen mehrere Ebenen von Schlüsseln und Werten Ihre Vorgänge komplexer machen können. In diesem Artikel erfahren Sie, wie Sie ein verschachteltes Wörterbuch reduzieren und gleichzeitig die Schlüssel komprimieren.

Das Problem

Betrachten Sie das folgende verschachtelte Wörterbuch:

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

Das Ziel besteht darin, dieses Wörterbuch auf etwas wie Folgendes zu reduzieren:

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

wohin die verschachtelten Schlüssel komprimiert werden Erstellen Sie einen einzelnen, abgeflachten Schlüssel.

Die Lösung

Um das verschachtelte Wörterbuch abzuflachen, können wir die Funktion „flatten()“ aus dem Modul „collections.abc“ verwenden. Diese Funktion kann wie folgt definiert werden:

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

Verwenden der Funktion

Um die flatten()-Funktion zu verwenden, übergeben Sie einfach das verschachtelte Wörterbuch als Argument. Die Funktion durchläuft das Wörterbuch rekursiv, „flacht“ es und komprimiert die Schlüssel.

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

Wie Sie sehen können, verfügt das abgeflachte Wörterbuch über eine einzelne Schlüsselebene, wobei die Schlüssel komprimiert werden, um die Verschachtelung zu integrieren Struktur des Originalwörterbuchs.

Das obige ist der detaillierte Inhalt vonWie kann ich ein verschachteltes Wörterbuch reduzieren und seine 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