通过添加值进行字典合并

时间:2016-06-18 05:28:19

标签: python dictionary

假设我有两个词典

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}

我正在尝试这个级别,请建议是否有人有此解决方案。

2 个答案:

答案 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}
>>> 

注意:请随时询问您是否有任何您不理解的内容 - 如果您不清楚它们的工作原理,那么学习咒语并不好!