如何减去两个整数的默认值的相同键的值

时间:2019-05-02 10:08:27

标签: python-3.x defaultdict dictionary-comprehension

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

我想我应该使用operator.sub和map的某种组合。

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

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

我希望:

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

1 个答案:

答案 0 :(得分:1)

使用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})