Verschachtelte Wörterbücher reduzieren: Schlüssel komprimieren
Um ein verschachteltes Wörterbuch zu reduzieren, müssen Sie jedes Schlüssel-Wert-Paar rekursiv durchlaufen. Erstellen neuer Schlüssel durch Verketten des übergeordneten Schlüssels mit dem aktuellen Schlüssel unter Verwendung eines Trennzeichens, z. B. eines Unterstrich.
Tiefere Ebenen des verschachtelten Wörterbuchs erfordern eine weitere Rekursion mit demselben Prozess.
Sobald Sie die Rekursion abgeschlossen haben, erstellen Sie ein neues Wörterbuch aus den reduzierten Elementen.
Hier ist eine Beispielimplementierung mit Python collections.abc.MutableMapping:
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)
Beispielverwendung:
>>> 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}
Das obige ist der detaillierte Inhalt vonWie reduziere ich ein verschachteltes Wörterbuch in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!