Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Wörterbücher mit doppelten Schlüsseln effizient zusammenführen und ihre Werte erfassen?

Wie kann ich Wörterbücher mit doppelten Schlüsseln effizient zusammenführen und ihre Werte erfassen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-24 15:29:12688Durchsuche

How Can I Efficiently Merge Dictionaries with Duplicate Keys and Collect Their Values?

Wörterbücher für doppelte Schlüssel zusammenführen

Wenn Sie mit mehreren Wörterbüchern arbeiten, die überlappende Schlüssel enthalten, ist es notwendig, diese effizient zusammenzuführen und gleichzeitig die mit diesen Schlüsseln verbundenen Werte zu sammeln. In diesem Artikel wird eine Lösung zum Kombinieren und Sammeln von Werten aus übereinstimmenden Schlüsseln in einer Sammlung von Wörterbüchern untersucht.

Problemstellung

Angesichts mehrerer Wörterbücher wie:

d1 = {key1: x1, key2: y1}
d2 = {key1: x2, key2: y2}

Das Ziel ist um ein zusammengeführtes Ergebnis als neues Wörterbuch zu erhalten, in dem jeder Schlüssel ein Tupel von Werten aus dem Original enthält Wörterbücher:

d = {key1: (x1, x2), key2: (y1, y2)}

Lösung

Die Lösung nutzt „collections.defaultdict“, um ein Wörterbuch mit Standardwerten als veränderbare Listen zu erstellen. Dies ermöglicht die Akkumulation von Werten für jeden Schlüssel:

from collections import defaultdict

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

dd = defaultdict(list)

for d in (d1, d2): # Input dictionaries can be iterated over here
    for key, value in d.items():
        dd[key].append(value)

Das endgültige zusammengeführte Wörterbuch dd enthält jeden Schlüssel, der einer Liste von Werten aus den Eingabewörterbüchern zugeordnet ist.

Das obige ist der detaillierte Inhalt vonWie kann ich Wörterbücher mit doppelten Schlüsseln effizient zusammenführen und ihre Werte erfassen?. 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