python - Python程序组合两个字典为公共键添加值
问题描述
我有两个字典,我需要将它们组合起来。我需要对相似键的值求和,而不同的键使它们没有求和。
这是两个字典:
d1 = {'a': 100, 'b': 200, 'c':300}
d2 = {'a': 300, 'b': 200, 'd':400}
预期结果:
d3= {'b': 400, 'd': 400, 'a': 400, 'c': 300}
我已成功求和并将它们添加到第三本字典中,但我不知道如何添加不同的值。
我的尝试
d1 = {'a': 100, 'b': 200, 'c':300}
d2 = {'a': 300, 'b': 200, 'd':400}
d3 = {}
for i, j in d1.items():
for x, y in d2.items():
if i == x:
d3[i]=(j+y)
print(d3)
My results = {'a': 400, 'b': 400}
解决方案
没有的版本collections.Counter
:
d1 = {'a': 100, 'b': 200, 'c':300}
d2 = {'a': 300, 'b': 200, 'd':400}
d = {k: d1.get(k, 0) + d2.get(k, 0) for k in d1.keys() | d2.keys()}
print(d)
印刷:
{'b': 400, 'c': 300, 'd': 400, 'a': 400}
编辑:使用for
-loop:
d1 = {'a': 100, 'b': 200, 'c':300}
d2 = {'a': 300, 'b': 200, 'd':400}
d = {}
for k in d1.keys() | d2.keys():
d[k] = d1.get(k, 0) + d2.get(k, 0)
print(d)
推荐阅读
- mule - Mulesoft 4 Dataweave for循环和EXCEL到JSON转换中的键值对
- python - 派生在 $\Theta( \sqrt{n} )$ 中运行的 while 循环
- javascript - 将鼠标移到另一个 div 中的另一个元素上时如何更改 div 样式?
- c - 在调查中提取获胜者/-s,然后打印
- javascript - 如何将 Javascript 符号设置为对象键?
- scheme - 通过 lambda 在 Scheme 中创建过程
- python - 当排名基于另一个属性装饰器时,如何计算 Django 模型中属性装饰器中的排名?
- c++ - 多核上的 MPI 计算比单核上的错误
- ios - 如何在 iOS 中禁用输入类型文件上的拍摄视频选项?
- ios - iOS - AVAudioPlayerNode.play() 执行速度很慢