上QQ阅读APP看书,第一时间看更新
2.3.6 获取两个字典中相同的键值对
在Python程序中,我们可以寻找并获取两个字典中相同的键值对,此功能通过keys()或items()这两个函数执行基本的集合操作即可实现。
· 函数keys()
在Python字典中,函数keys()能够返回keys-view对象,其中暴露了所有的键。字典中的键可以支持常见的集合操作,例如求并集、交集和差集。由此可见,如果需要对字典中的键进行常见的集合操作,可以直接使用keys-view对象来实现,而无须先将它们转换为集合。
· 函数items()
在Python字典中,函数items()能够返回由键值对组成的items-view对象。这个对象支持类似的集合操作,可以用于找出两个字典中有哪些键值对有相同之处。
下面的实例文件same.py演示了获取两个字典中相同键值对的过程。
源码路径:daima\第2章\same.py
a = { 'x': 1, 'y': 2, 'z': 3 } b = { 'x': 11, 'y': 2, 'w': 10 } ①print(a.keys() & b.keys()) # {'x','y'} print(a.keys() - b.keys()) # {'z'} ②print(a.items() & b.items()) # {('y', 2)} ③c = {key: a[key] for key in a.keys() - {'z', 'w'}} ④print(c) # {'x':1, 'y':2}
在上述代码中,①~②通过keys()和items()执行集合操作,从而获取两个字典中相同的键值对。③~④是使用字典推导式实现的,能够修改或过滤掉字典中的内容。如果想创建一个新的字典,在其中可能会去掉某些键。执行结果如图2-25所示。
图2-25 执行结果