如何减去两个 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})
我有两个具有不同值(可能还有键)的 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})