2つの辞書を結合するPythonの方法はありますか(両方に現れるキーの値を追加する)?質問する

2つの辞書を結合するPythonの方法はありますか(両方に現れるキーの値を追加する)?質問する

たとえば、2 つの辞書があります。

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

結果が次のようになるように、2 つの辞書を「結合」する Python の方法が必要です。

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

つまり、キーが両方の辞書に現れる場合は、それらの値を追加し、キーが 1 つの辞書にのみ現れる場合は、その値を保持します。

ベストアンサー1

使用collections.Counter:

>>> from collections import Counter
>>> A = Counter({'a':1, 'b':2, 'c':3})
>>> B = Counter({'b':3, 'c':4, 'd':5})
>>> A + B
Counter({'c': 7, 'b': 5, 'd': 5, 'a': 1})

カウンターは基本的に のサブクラスなのでdict、キーと値の反復処理など、その型で通常行う他のすべての操作をカウンターでも実行できます。

おすすめ記事