Ab Python 3.5: Zusammenführen und Summieren
Danke an @tokeinizer_fsj, der mich in einem Kommentar darauf hingewiesen hat, dass ich den Sinn der Frage nicht ganz verstanden habe (ich dachte, add bedeute nur das Hinzufügen von Schlüsseln, die eventuell in den beiden Diktaten unterschiedlich sind, stattdessen meinte ich, dass die gemeinsamen Schlüsselwerte summiert werden sollten). Also habe ich diese Schleife vor der Zusammenführung hinzugefügt, so dass das zweite Wörterbuch die Summe der gemeinsamen Schlüssel enthält. Das letzte Wörterbuch wird dasjenige sein, dessen Werte im neuen Wörterbuch, das das Ergebnis der Zusammenführung der beiden ist, bestehen bleiben, so dass ich denke, dass das Problem gelöst ist. Die Lösung ist ab Python 3.5 und folgenden Versionen gültig.
a = {
"a": 1,
"b": 2,
"c": 3
}
b = {
"a": 2,
"b": 3,
"d": 5
}
# Python 3.5
for key in b:
if key in a:
b[key] = b[key] + a[key]
c = {**a, **b}
print(c)
>>> c
{'a': 3, 'b': 5, 'c': 3, 'd': 5}
Wiederverwendbarer Code
a = {'a': 1, 'b': 2, 'c': 3}
b = {'b': 3, 'c': 4, 'd': 5}
def mergsum(a, b):
for k in b:
if k in a:
b[k] = b[k] + a[k]
c = {**a, **b}
return c
print(mergsum(a, b))