python比较两个字典是否相同,如果不同,分别输出两个字典不同的键值对
时间: 2023-08-04 19:26:07 浏览: 95
在 Python 中,可以使用 `==` 运算符来比较两个字典是否相同,但它并不能直接输出不同的键值对。如果要输出不同的键值对,可以使用字典推导式和 `set` 对两个字典的键进行操作来实现。
下面是一个示例代码:
```python
# 定义两个字典
dict1 = {'a': 1, 'b': 2, 'c': 3}
dict2 = {'a': 1, 'b': 4, 'd': 5}
# 比较两个字典是否相同
if dict1 == dict2:
print("字典相同")
else:
# 找出不同的键和值
diff_keys = set(dict1.keys()).symmetric_difference(set(dict2.keys()))
diff_dict1 = {k: dict1[k] for k in diff_keys if k in dict1}
diff_dict2 = {k: dict2[k] for k in diff_keys if k in dict2}
print("dict1中不同的键值对:", diff_dict1)
print("dict2中不同的键值对:", diff_dict2)
```
在这个示例中,我们首先使用 `==` 运算符比较两个字典是否相同。由于 `dict1` 和 `dict2` 的键和值不完全相同,因此它们被认为是不同的。然后,我们使用 `set` 对两个字典的键进行异或操作,得到不同的键的集合。最后,使用字典推导式遍历不同的键,将其对应的值存储在一个新的字典中,该字典即为不同的键值对。
输出结果如下:
```
dict1中不同的键值对: {'c': 3}
dict2中不同的键值对: {'d': 5, 'b': 4}
```
可以看到,输出的结果中分别包含了两个字典中不同的键值对。需要注意的是,由于两个字典的键不完全相同,因此输出结果中的键值对可能不在对应的字典中。因此,在遍历不同的键时,需要判断该键是否存在于对应的字典中。
阅读全文