假设我有两个词典
a = {'milk':90, 'coffee':80, 'rice':100, 'Cheese': 70}
b = {'milk':90, 'coffee':80, 'pulses': 100,'Alcohol':750}
我想通过添加字典的常用元素的值来合并这两个字典,这些元素应该产生如下结果:
c = {'milk':180, 'coffee':160, 'rice':100, 'Cheese':70, 'pulses':100, 'Alcohol':750}
我正在尝试这个级别,请建议是否有人有此解决方案。
答案 0 :(得分:3)
使用任一dicts的image
并添加它们的值来制作第三个,因此哪个项目对其中一个项目唯一无关紧要。使用dict.get
从这两个词组中获取每个键的值,如果该项目不存在则默认为keys
(因为我们正在添加)。
0
如果您愿意,可以使用单行版本:
>>> c = {}
>>> for key in set(a.keys() + b.keys()):
... c[key] = a.get(key, 0) + b.get(key, 0)
...
>>> c
{'Cheese': 70, 'coffee': 160, 'Alcohol': 750, 'pulses': 100, 'rice': 100, 'milk': 180}
答案 1 :(得分:1)
您可以尝试这样的事情:
>>> def merge_dicts(a,b):
... c = {}
... for k, v in a.items():
... c[k] = a[k] + b.get(k, 0)
... b.update(c)
... return b
...
>>> merge_dicts(a,b)
{'Cheese': 70, 'coffee': 160, 'Alcohol': 750, 'pulses': 100, 'rice': 100, 'milk': 180}
>>>
注意:请随时询问您是否有任何您不理解的内容 - 如果您不清楚它们的工作原理,那么学习咒语并不好!