Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich mehrere Wörterbücher mit möglicherweise fehlenden Schlüsseln effizient zusammenführen?

Wie kann ich mehrere Wörterbücher mit möglicherweise fehlenden Schlüsseln effizient zusammenführen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-16 19:56:11150Durchsuche

How Can I Efficiently Merge Multiple Dictionaries with Potentially Missing Keys?

Effiziente Aggregation von Daten aus mehreren Wörterbüchern

Bei der Arbeit mit mehreren Wörterbüchern kann es erforderlich sein, deren Daten zusammenzuführen und Werte für übereinstimmende Schlüssel zu sammeln in ein neues Wörterbuch. Diese Aufgabe stellt eine Herausforderung dar, wenn die Wörterbücher möglicherweise Schlüssel enthalten, die in anderen fehlen.

Um diese Herausforderung effektiv zu bewältigen, können wir das Standarddikt aus dem Sammlungsmodul verwenden. So funktioniert es:

from collections import defaultdict

d1 = {1: 2, 3: 4}
d2 = {1: 6, 3: 7}

dd = defaultdict(list)

for d in (d1, d2): # Include all dictionaries here
    for key, value in d.items():
        dd[key].append(value)

Dieser Code durchläuft jedes Wörterbuch und fügt jedes Schlüssel-Wert-Paar zum Standarddikt hinzu. Das Standarddikt initialisiert fehlende Schlüssel automatisch mit einer leeren Liste. Wenn also ein Schlüssel in einem Wörterbuch gefunden wird, aber nicht in den vorherigen, wird eine neue Liste seiner Werte erstellt.

Das in dd erhaltene Endergebnis ist ein Standarddikt, bei dem jeder Schlüssel einer Liste von Werten entspricht gesammelt aus allen Eingabewörterbüchern.

print(dd) # Result: defaultdict(<type 'list'>, {1: [2, 6], 3: [4, 7]})

Diese Lösung gewährleistet eine effiziente und umfassende Datenaggregation aus mehreren Wörterbüchern und behandelt sogar Fälle mit fehlenden Schlüsseln.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Wörterbücher mit möglicherweise fehlenden Schlüsseln effizient zusammenführen?. 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