查找两字典的相同点
2021-01-12 本文已影响0人
limbo1996
查找两字典的相同点
问题
寻找两字典的相同点(相同的键, 相同的值)
解决
定义两个字典
a = {
'x' : 1,
'y' : 2,
'z' : 3
}
b = {
'w' : 10,
'x' : 11,
'y' : 2
}
可以直接对两个字典的keys()
和items()
进行操作,可以灵活使用操作符
>>> a.keys() & b.keys()
{'y', 'x'}
>>> a.keys() & b.keys()
{'y', 'x'}
>>> a.keys() - b.keys()
{'z'}
>>> a.items() & b.items()
{('y', 2)}
这些操作符也可以用于修改和过滤字典元素。比如想构建一个新字典,可以用字典推导式
>>> c = {key:a[key] for key in a.keys() - {'z', 'w'}}
>>> c
{'y': 2, 'x': 1}
上面的推导式等于
c = {}
for key in a.keys() - {'z', 'w'}:
c[key] = a[key]
字典的
keys()
方法返回一个展现键集合的键视图对象。 键视图的一个很少被了解的特性就是它们也支持集合操作,比如集合并、交、差运算。 所以,如果你想对集合的键执行一些普通的集合操作,可以直接使用键视图对象而不用先将它们转换成一个 set。字典的
items()
方法返回一个包含 (键,值) 对的元素视图对象。 这个对象同样也支持集合操作,并且可以被用来查找两个字典有哪些相同的键值对
而values()
不支持集合操作。