首页 > 解决方案 > 比较python中的2个字典

问题描述

嗨,我有 2 个字典,其中第一个有 266 个条目,第二个字典有 136 个。所以通过比较两个字典我想要不匹配的结果。

例如 dic 1 比 dic 2 多 130 个数据。所以我需要那些 130 个不匹配的数据。

这有什么逻辑吗?

谢谢

标签: pythondictionary

解决方案


蟒蛇2:

假设“条目”是指“键”,一个解决方案是在字典键上使用设置差异与类似的东西set(dict1.keys()) - set(dict2.keys())

例子:

>>> a = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
>>> b = {'a': 1, 'c': 3}
>>> a.keys()
['a', 'c', 'b', 'd']
>>> b.keys()
['a', 'c']
>>> set(a.keys())-set(b.keys())
set(['b', 'd'])
>>>

你会得到一组在set(dict1.keys()) ^ set(dict2.keys())任一字典中但不在两个字典中的键。

蟒蛇 3

Python 3中字典的keys()方法直接支持集差(-)和对称差(^)所以可以写

dict1.keys() - dict2.keys()
dict1.keys() ^ dict2.keys()

推荐阅读