以下是一个比较两个字典并返回新的字典的示例代码:
def compare_dicts(dict1, dict2):
# 创建一个新的字典用于存储不同的键值对
diff_dict = {}
# 比较两个字典的键值对
for key in dict1.keys():
if key in dict2.keys():
# 如果键存在于两个字典中,则比较对应的值
if dict1[key] != dict2[key]:
# 如果值不相等,则将键值对添加到新字典中
diff_dict[key] = (dict1[key], dict2[key])
else:
# 如果键只存在于第一个字典中,则将键值对添加到新字典中
diff_dict[key] = (dict1[key], None)
# 检查第二个字典中是否有键只存在于第二个字典中的情况
for key in dict2.keys():
if key not in dict1.keys():
# 如果键只存在于第二个字典中,则将键值对添加到新字典中
diff_dict[key] = (None, dict2[key])
return diff_dict
# 示例用法
dict1 = {'a': 1, 'b': 2, 'c': 3}
dict2 = {'a': 1, 'b': 3, 'd': 4}
diff_dict = compare_dicts(dict1, dict2)
print(diff_dict)
这段代码首先定义了一个compare_dicts
函数,该函数接受两个字典作为参数。在函数中,我们创建了一个新的字典diff_dict
用于存储不同的键值对。
然后,我们使用for
循环遍历第一个字典的键,并检查这些键是否存在于第二个字典中。如果键存在于两个字典中,我们比较对应的值是否相等。如果值不相等,则将键值对添加到新字典diff_dict
中。
接下来,我们使用另一个for
循环遍历第二个字典的键,并检查这些键是否存在于第一个字典中。如果键只存在于第二个字典中,我们将键值对添加到新字典diff_dict
中。
最后,我们返回新字典diff_dict
,其中包含两个字典之间的不同键值对。在示例中,输出结果为{'b': (2, 3), 'c': (3, None), 'd': (None, 4)}
。这表示两个字典在键b
、c
和d
的值上存在差异。
上一篇:比较两个字典并返回缺失的值