小编eSe*_*ano的帖子

从字典中减去元素

我有两本词典,让我们说:

dict_a = {"A": 3.0, "C": 4.0, "B": 6.0}
dict_b = {"A": 3.0, "C": 5.0, "D": 1.0}
Run Code Online (Sandbox Code Playgroud)

我想计算一个减法,dict_a - dict_b所以输出给了我:

{"A": 0.0, "B": 6.0, "C": -1.0, "D": -1.0}
Run Code Online (Sandbox Code Playgroud)

谷歌搜索了一段时间我见过人们使用Counter来执行这样的操作,但做了一些简单的事情

dict(Counter(dict_a) - Counter(dict_b))
Run Code Online (Sandbox Code Playgroud)

只给了我

{"A": 0.0, "B": 6.0}
Run Code Online (Sandbox Code Playgroud)

即,如果键不在dict_a,它将不会出现在输出中.

到目前为止,我已经管理了以下解决方案:

dict_b2 = dict_b.copy()
dict_c = {}
for i in dict_a.keys():
   dict_c.update({i: dict_a[i] - dict_b2.pop(i,0.0)})
   # Changes sign to the remaining values from dict_b2
dict_c.update({k: 0.0 - v for k, v in dict_b2.iteritems()})
Run Code Online (Sandbox Code Playgroud)

但我知道必须有一种更加优雅和有效的方式.

有任何想法吗?

python counter dictionary

1
推荐指数
1
解决办法
329
查看次数

标签 统计

counter ×1

dictionary ×1

python ×1