问题
怎样在两个字典中寻寻找相同点(比如相同的键、相同的值等等)?
解决方案
直接对keys()或者items()使用集合操作,比如-(差)、|(并)、&(交)
考虑下面两个字典:
也可以使用这一特性来对字典过滤,例如去掉集合A中key为x和y两个元素
但values()不支持这样的集合操作,因为values()返回的结果中,可能会有重复元素,也就不能当作一个集合来看了
总结:
dict.keys()、dict.values() 和dict.items()返回的是视图对象,也就是说当字典改变后,视图对象也会改变
并且dict.keys()是set-like的,因为key的值是唯一的并且是可hash的,除此之外,当value的值也是可hash的时候,dict.items()也是set-like的
set-like对象可以像set对象一样执行集合间的操作
来源:公众号每日一练