python两个_多个字典合并相加

本文介绍三种在Python中合并字典的方法:使用update()函数、定义sum_dict函数处理相同key的相加场景,以及使用解包法。适用于不同需求,如避免key冲突或合并数值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这只是符合比较正常的需求和场景。

#一、适用合并两个字典(key不能相同否则会被覆盖),简单,好用。

1 A = {'a': 11, 'b': 22}
2 B = {'c': 48, 'd': 13}
3 #update() 把字典B的键/值对更新到A里
4 A.update(B)
5 print(A)

#二、适用多种场合,多字典存在相同key需要合并相加的场景比较适用。

 1 def sum_dict(a,b):
 2     temp = dict()
 3     # python3,dict_keys类似set; | 并集
 4     for key in a.keys()| b.keys():
 5         temp[key] = sum([d.get(key, 0) for d in (a, b)])
 6     return temp
 7 
 8 def test():
 9     #python3使用reduce需要先导入
10     from functools import reduce
11     #[a,b,c]列表中的参数可以2个也可以多个,自己尝试。
12     return print(reduce(sum_dict,[a,b,c]))
13 
14 a = {'a': 1, 'b': 2, 'c': 3}
15 b = {'a':1,'b':3,'d':4}
16 c = {'g':3,'f':5,'a':10}
17 test()

三、解包法和第一种效果(限制)一样,B吃掉A。

1 A = {'a': 11, 'b': 22}
2 B = {'a': 48, 'b': 13}
3 print({**A,**B})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值