Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Python-Wörterbücher mit doppelten Schlüsseln effizient zusammenführen?
Wörterbücher mit doppelten Schlüsseln zusammenführen
In Python werden Wörterbücher zum Speichern von Sammlungen von Schlüssel-Wert-Paaren verwendet. Beim Umgang mit mehreren Wörterbüchern mit doppelten Schlüsseln kann das Zusammenführen dieser Wörterbücher unter Beibehaltung der zugehörigen Werte eine häufige Herausforderung sein.
Eine effiziente Methode, dies zu erreichen, ist die Verwendung von „collections.defaultdict“ aus der Python-Standardbibliothek. Dieses spezielle Wörterbuch ermöglicht die Wertinitialisierung mit einer Standardfabrik, z. B. einer Liste, für nicht vorhandene Schlüssel.
Betrachten Sie die folgenden Beispielwörterbücher:
d1 = {1: 2, 3: 4} d2 = {1: 6, 3: 7}
Um diese Wörterbücher zusammenzuführen, haben wir kann ein Standarddict mit einem Standardwert einer leeren Liste initialisieren:
dd = defaultdict(list)
Als nächstes iterieren wir über jedes Wörterbuch in der Sequenz zusammen mit seinem Schlüssel-Wert-Paare:
for d in (d1, d2): for key, value in d.items(): dd[key].append(value)
In dieser Schleife hängen wir für jeden gefundenen Schlüssel den entsprechenden Wert an die Standardliste an. Dieser Ansatz stellt sicher, dass alle doppelten Schlüssel mit den zugehörigen Werten behandelt werden.
Dadurch enthält das dd-Wörterbuch zusammengeführte Werte, die doppelten Schlüsseln entsprechen:
print(dd) # Output: defaultdict(<type 'list'>, {1: [2, 6], 3: [4, 7]})
Diese Methode ist besonders nützlich wenn es sich um große Sätze von Wörterbüchern handelt oder wenn eine beliebige Anzahl von Eingabewörterbüchern vorhanden sein kann. Alle doppelten Schlüssel werden effizient zusammengeführt und gleichzeitig ihre Werte in einem konsolidierten Ausgabewörterbuch beibehalten.
Das obige ist der detaillierte Inhalt vonWie kann ich Python-Wörterbücher mit doppelten Schlüsseln effizient zusammenführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!