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!