python两个字典合并相加
时间: 2025-07-06 17:54:09 浏览: 20
### Python 中合并两个字典并相加
当处理需要将两个字典中的数值型值进行相加的情况时,可以采用多种方法来实现这一目标。下面展示了一种常见的方式:
对于具有相同键的字典,可以通过遍历其中一个字典并将对应的值累加到另一个字典中去。
```python
def combine_and_add(dict1, dict2):
result = dict1.copy() # 创建一个新的字典副本以保留原始数据
for key, value in dict2.items():
if key in result and isinstance(result[key], (int, float)) and isinstance(value, (int, float)):
result[key] += value # 如果键存在且都是数字,则相加
else:
result[key] = value # 否则直接赋值
return result
A = {'a': 11, 'b': 22}
B = {'b': 33, 'c': 48}
combined_dict = combine_and_add(A, B)
print(combined_dict) # 输出: {'a': 11, 'b': 55, 'c': 48}[^1]
```
此代码片段展示了如何定义一个函数 `combine_and_add` 来接收两个参数作为输入,并返回它们组合后的版本,在这个过程中如果遇到相同的键名会尝试将其关联的整数或浮点数值相加以达到累积效果。
另外一种更简洁的方法是利用字典解析式以及集合操作符来进行合并与求和:
```python
from collections import Counter
A = {'a': 11, 'b': 22}
B = {'b': 33, 'c': 48}
counter_A = Counter(A)
counter_B = Counter(B)
summed_counter = counter_A + counter_B
final_dict = dict(summed_counter)
print(final_dict) # 输出: {'a': 11, 'b': 55, 'c': 48}[^4]
```
这里引入了 `collections.Counter` 类,它是一个专门用于计数的对象,非常适合用来做这种类型的运算。通过创建两个 `Counter` 实例分别代表要合并的字典,再使用加号(`+`)运算符可以直接得到两者对应项之和的新对象,最后转换回普通的字典形式即可获得所需的结果。
阅读全文
相关推荐


















