需要编写一个函数 merge_dicts(d1, d2),该函数接受两个字典作为参数。每个字典的键都是字符串,值是整数。要求合并这两个字典,并在键重复时对值进行累加。
- 如果两个字典中有相同的键,合并后的字典中该键的值应该是两个字典中对应值的和。
- 如果键在其中一个字典中不存在,那么直接将该键值对添加到合并后的字典中。
- 返回合并后的字典。
需要编写一个函数 merge_dicts(d1, d2),该函数接受两个字典作为参数。每个字典的键都是字符串,值是整数。要求合并这两个字典,并在键重复时对值进行累加。
关注要实现一个函数 merge_dicts(d1, d2),该函数接受两个字典作为参数,并在键重复时对值进行累加,可以使用 Python 的字典操作来实现。以下是详细的实现步骤和代码示例。
def merge_dicts(d1, d2):
# 初始化合并后的字典
merged_dict = {}
# 遍历第一个字典
for key, value in d1.items():
if key in merged_dict:
merged_dict[key] += value # 如果键已经存在,累加值
else:
merged_dict[key] = value # 如果键不存在,直接添加
# 遍历第二个字典
for key, value in d2.items():
if key in merged_dict:
merged_dict[key] += value # 如果键已经存在,累加值
else:
merged_dict[key] = value # 如果键不存在,直接添加
# 返回合并后的字典
return merged_dict
# 示例用法
d1 = {'a': 1, 'b': 2, 'c': 3}
d2 = {'b': 3, 'c': 4, 'd': 5}
merged = merge_dicts(d1, d2)
print(merged) # 输出: {'a': 1, 'b': 5, 'c': 7, 'd': 5}
merged_dict = {} 创建一个空字典。for key, value in d1.items() 遍历第一个字典的所有键值对。如果键已经存在于 merged_dict 中,则累加值;否则,直接添加键值对。for key, value in d2.items() 遍历第二个字典的所有键值对。同样,如果键已经存在于 merged_dict 中,则累加值;否则,直接添加键值对。return merged_dict 返回最终合并后的字典。为了确保函数的正确性,可以进行一些测试:
# 测试用例 1
d1 = {'a': 1, 'b': 2, 'c': 3}
d2 = {'b': 3, 'c': 4, 'd': 5}
print(merge_dicts(d1, d2)) # 预期输出: {'a': 1, 'b': 5, 'c': 7, 'd': 5}
# 测试用例 2
d1 = {'x': 10, 'y': 20}
d2 = {'y': 30, 'z': 40}
print(merge_dicts(d1, d2)) # 预期输出: {'x': 10, 'y': 50, 'z': 40}
# 测试用例 3
d1 = {}
d2 = {'a': 1, 'b': 2}
print(merge_dicts(d1, d2)) # 预期输出: {'a': 1, 'b': 2}
# 测试用例 4
d1 = {'a': 1, 'b': 2}
d2 = {}
print(merge_dicts(d1, d2)) # 预期输出: {'a': 1, 'b': 2}
这些测试用例涵盖了不同的情况,包括空字典、完全不同的键、部分相同的键等,可以帮助验证函数的正确性。