合并字典而不重写,而是在键相等时添加值

2024-04-20 04:23:16 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有办法在不盲目重写同一个键的值的情况下更新()一个字典? 例如,我希望在我的策略中,如果找到同一个键,则为其添加值;如果找不到键,则进行连接。在

d1 = {'eggs':3, 'ham':2, 'toast':1}
d2 = {'eggs':2,'ham':1}

dresult = d1.myUpdate(d2)

print dresult 
{'eggs':5,'ham':3,'toast':1}

Tags: 字典情况策略eggsd2d1hamprint
2条回答

您可以为此使用Counter(在python 2.7中引入):

from collections import Counter
d1 = {'eggs':3, 'ham':2, 'toast':1}
d2 = {'eggs':2,'ham':1}
dresult = Counter(d1) + Counter(d2)  #Counter({'eggs': 5, 'ham': 3, 'toast': 1})

如果您需要一个适用于python2.5+的版本,defaultdict也可以工作(尽管不是很好):

^{pr2}$

尽管你可以达到一个相当于Python的水平。?结果使用字典的setdefault方法。。。在

使用计数器:

from collections import Counter
d1 = Counter({'eggs':3, 'ham':2, 'toast':1})
d2 = Counter({'eggs':2,'ham':1})
print d1 + d2

相关问题 更多 >