如何减去两个 defaultdicts 的相同键的值

How to substract values of same keys of two defaultdicts of ints

我有两个具有不同值(可能还有键)的 defaultdict。我想用减去相同键控值的结果创建第三个。我知道这很容易,但我找不到一个 pythonic 的方法来做到这一点(不是 for 循环)。

我想我应该使用 operator.sub 和地图的一些组合。

a = defaultdict(int)
b = defaultdict(int)

a['8'] += 500
a['9'] += 400
b['8'] += 300

我预计:

c 
defaultdict(<class 'int'>, {'8': 200, '9': 400 })

使用collections.Counter

例如:

a = defaultdict(int)
b = defaultdict(int)

a['8'] += 500
a['9'] += 400
b['8'] += 300
print(Counter(a) - Counter(b))

输出:

Counter({'9': 400, '8': 200})