Heim >Backend-Entwicklung >Python-Tutorial >Wie kombiniere ich Wörterbücher in Python mit überlappenden Schlüsseln effizient?

Wie kombiniere ich Wörterbücher in Python mit überlappenden Schlüsseln effizient?

DDD
DDDOriginal
2024-12-09 10:43:061005Durchsuche

How to Efficiently Combine Dictionaries in Python with Overlapping Keys?

Wie man Wörterbücher mit überlappenden Schlüsseln pythonisch kombiniert

Das Kombinieren von Wörterbüchern mit überlappenden Schlüsseln kommt in der Programmierung häufig vor. Angenommen, wir haben zwei Wörterbücher:

Dict A: {'a': 1, 'b': 2, 'c': 3}
Dict B: {'b': 3, 'c': 4, 'd': 5}

Wir wollen ein neues Wörterbuch mit den folgenden Eigenschaften erstellen:

  • Für Schlüssel, die in beiden Wörterbüchern vorhanden sind, addieren Sie ihre entsprechenden Werte.
  • Für Schlüssel, die nur in einem Wörterbuch vorhanden sind, behalten Sie ihre ursprünglichen Werte bei.

Pythonic-Lösung: Verwenden Collections.Counter

Ein eleganter und pythonischer Ansatz verwendet die Klasse „collections.Counter“, eine Unterklasse von dict, die Zähl- und Summationsaufgaben vereinfacht. So verwenden Sie es:

from collections import Counter

A = Counter({'a':1, 'b':2, 'c':3})
B = Counter({'b':3, 'c':4, 'd':5})

result = A + B

A B führt eine Zähleradditionsoperation aus, die zu einem neuen Zählerobjekt führt:

Counter({'c': 7, 'b': 5, 'd': 5, 'a': 1})

Dieser neue Zähler enthält die gewünschten kombinierten Werte. Da Zähler von Diktaten abgeleitet werden, können Sie mit ihnen wie regulären Wörterbüchern interagieren, einschließlich der Iteration über Schlüssel und Werte.

Das obige ist der detaillierte Inhalt vonWie kombiniere ich Wörterbücher in Python mit überlappenden Schlüsseln effizient?. 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