Python—合并两个带有公共键值的字典,并添加值


使用 Python 分析数据时,我们会遇到必须以这种方式合并两个字典的情况,即对键具有相同值的那些元素进行值相加。在本文中,我们将看到添加这种两个字典的情况。

For 循环和 | 运算符

采用此方法时,我们会设计一个 for 循环,以检查两个字典中键值是否存在,然后再将其相加。最后,使用 | 运算符(字典可用)合并两个字典。

示例

dictA = {'Mon': 23, 'Tue': 11, 'Sun': 6}
dictB = {'Wed': 10, 'Mon': 12, 'Sun': 4}

# Add with common key
for key in dictB:
   if key in dictA:
      dictB[key] = dictB[key] + dictA[key]
   else:
      pass
res = dictA | dictB
print(res)

运行上述代码会得到以下结果 −

输出

{'Mon': 35, 'Tue': 11, 'Sun': 10, 'Wed': 10}

使用计数器

Collections 模块中的 Counter 函数可直接用于合并两个字典,这样可以保留键。然后会将值添加到匹配的键中。

示例

from collections import Counter
dictA = {'Mon': 23, 'Tue': 11, 'Sun': 6}
dictB = {'Wed': 10, 'Mon': 12, 'Sun': 4}

res = Counter(dictA) + Counter(dictB)
print(res)

运行上述代码会得到以下结果 −

输出

Counter({'Mon': 35, 'Tue': 11, 'Sun': 10, 'Wed': 10})

更新日期: 2020 年 12 月 28 日

浏览量:2K+

开启您的 职业

完成课程以获得认证

开始学习
广告