两个字典的合并和总和 [英] Merge and sum of two dictionaries

查看:128
本文介绍了两个字典的合并和总和的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个字典下面,我想添加到另一个字典,不一定是不同的元素,并合并它的结果。是否有任何内置的功能,或者我需要自己制作?

  {'6d6e7bf221ae24e07ab90bba4452267b05db7824cd3fd1ea94b2c9a8':6, '7c4a462a6ed4a3070b6d78d97c90ac230330603d24a58cafa79caf42':7, '9c37bdc9f4750dd7ee2b558d6c06400c921f4d74aabd02ed5b4ddb38':9 'd3abb28d5776aef6b728920b5d7ff86fa3a71521a06538d2ad59375a':15, '2ca9e1f9cbcd76a5ce1772f9b59995fd32cbcffa8a3b01b5c9c8afc2':11} 

字典中的元素数目也是未知的。



合并考虑两个相同的键,这些键的值应该相加而不是覆盖。 / p>

解决方案

你没有说出你想要合并的方式,所以选择:

  x = {'both1':1,'both2':2,'only_x':100} 
y = {'both1':10,'both2 ':20,'only_y':200}

print {k:x.get(k,0)+ y.get(k,0)for set in(x)}
打印{对于集合(x)中的k,k:x.get(k,0)+ y.get(k,0) set(y)}
print {k:x.get(k,0)+ y.get(k,0)for set in(x)| set(y)}

结果:

  {'both2':22,'only_x':100,'both1':11} 
{'both2':22,'both1':11}
{'only_y':200,'both2':22,'both1':11,'only_x':100}


I have a dictionary below, and I want to add to another dictionary with not necessarily distinct elements and merge it's results. Is there any built-in function for this, or will I need to make my own?

{'6d6e7bf221ae24e07ab90bba4452267b05db7824cd3fd1ea94b2c9a8': 6, '7c4a462a6ed4a3070b6d78d97c90ac230330603d24a58cafa79caf42': 7, '9c37bdc9f4750dd7ee2b558d6c06400c921f4d74aabd02ed5b4ddb38': 9, 'd3abb28d5776aef6b728920b5d7ff86fa3a71521a06538d2ad59375a': 15, '2ca9e1f9cbcd76a5ce1772f9b59995fd32cbcffa8a3b01b5c9c8afc2': 11}

The number of elements in the dictionary is also unknown.

Where the merge considers two identical keys, the values of these keys should be summed instead of overwritten.

解决方案

You didn't say how exactly you want to merge, so take your pick:

x = {'both1':1, 'both2':2, 'only_x': 100 }
y = {'both1':10, 'both2': 20, 'only_y':200 }

print { k: x.get(k, 0) + y.get(k, 0) for k in set(x) }
print { k: x.get(k, 0) + y.get(k, 0) for k in set(x) & set(y) }
print { k: x.get(k, 0) + y.get(k, 0) for k in set(x) | set(y) }

Results:

{'both2': 22, 'only_x': 100, 'both1': 11}
{'both2': 22, 'both1': 11}
{'only_y': 200, 'both2': 22, 'both1': 11, 'only_x': 100}

这篇关于两个字典的合并和总和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆