1. ホーム
  2. python

[解決済み] 2つのディクショナを結合する(両方に現れるキーの値を追加する)pythonicな方法はありますか?

2022-03-19 02:02:40

質問

例えば、2つのディクショナリーがあります。

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

私は、結果が次のようになるように2つのディクショナを「結合」するpythonicな方法を必要としています。

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

つまり、あるキーが両方のdictに現れる場合はその値を足し、片方のdictにしか現れない場合はその値を維持します。

どのように解決するのですか?

使用方法 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 そのため、キーや値の反復処理など、その型に対して通常行われる他のすべての操作を行うことができます。