查找两字典的相同点

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()不支持集合操作。

上一篇下一篇

猜你喜欢

热点阅读