[英]Adding dictionaries together in Python
如果我有2个字典x={'a':1,'b':2}
和y={'a':1,'b':3}
我想要输出z={'a':2,'b':5}
,是否有z=dict.add(x,y)
函数,还是应该将两个字典都转换为数据框,然后将它们与z=x.add(y)
一起添加z=x.add(y)
吗?
例如,您可以在这种情况下使用Counter
:
from pprint import pprint
from collections import Counter
x={'a':1,'b':2}
y={'a':1,'b':3}
c = Counter()
c.update(x)
c.update(y)
pprint(dict(c))
输出:
{'a': 2, 'b': 5}
或使用+ :
from pprint import pprint
from collections import Counter
x={'a':1,'b':2}
y={'a':1,'b':3}
pprint(dict(Counter(x) + Counter(y)))
collections.Counter
是自然的方法,但是您也可以在计算字典键的并集之后使用字典理解:
x = {'a':1, 'b':2}
y = {'a':1, 'b':3}
dict_tup = (x, y)
keys = set().union(*dict_tup)
z = {k: sum(i.get(k, 0) for i in dict_tup) for k in keys}
print(z)
{'a': 2, 'b': 5}
码:
from collections import Counter
x = {"a":1, "b":2}
y = {"a":1, "b":3}
c = Counter(x)
c += Counter(y)
z = dict(c)
print(z)
输出:
{'a': 2, 'b': 5}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.