《Python Cookbook(第3版)中文版》——1.9 在两个字典中寻找相同点
本節書摘來自異步社區《Python Cookbook(第3版)中文版》一書中的第1章,第1.9節,作者[美]David Beazley , Brian K.Jones,陳舸 譯,更多章節內容可以訪問云棲社區“異步社區”公眾號查看。
1.9 在兩個字典中尋找相同點
1.9.1 問題
有兩個字典,我們想找出它們中間可能相同的地方(相同的鍵、相同的值等)。
1.9.2 解決方案
考慮如下兩個字典:
a = {'x' : 1,'y' : 2,'z' : 3 }b = {'w' : 10,'x' : 11,'y' : 2 }要找出這兩個字典中的相同之處,只需通過keys()或者items()方法執行常見的集合操作即可。例如:
# Find keys in common a.keys() & b.keys() # { 'x', 'y' }# Find keys in a that are not in b a.keys() - b.keys() # { 'z' }# Find (key,value) pairs in common a.items() & b.items() # { ('y', 2) }這些類型的操作也可用來修改或過濾掉字典中的內容。例如,假設想創建一個新的字典,其中會去掉某些鍵。下面是使用了字典推導式的代碼示例:
# Make a new dictionary with certain keys removed c = {key:a[key] for key in a.keys() - {'z', 'w'}} # c is {'x': 1, 'y': 2}1.9.3 討論
字典就是一系列鍵和值之間的映射集合。字典的keys()方法會返回keys-view對象,其中暴露了所有的鍵。關于字典的鍵有一個很少有人知道的特性,那就是它們也支持常見的集合操作,比如求并集、交集和差集。因此,如果需要對字典的鍵做常見的集合操作,那么就能直接使用keys-view對象而不必先將它們轉化為集合。
字典的items()方法返回由(key,value)對組成的items-view對象。這個對象支持類似的集合操作,可用來完成找出兩個字典間有哪些鍵值對有相同之處的操作。
盡管類似,但字典的values()方法并不支持集合操作。部分原因是因為在字典中鍵和值是不同的,從值的角度來看并不能保證所有的值都是唯一的。單這一條原因就使得某些特定的集合操作是有問題的。但是,如果必須執行這樣的操作,還是可以先將值轉化為集合來實現。
總結
以上是生活随笔為你收集整理的《Python Cookbook(第3版)中文版》——1.9 在两个字典中寻找相同点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Google Guava] 1.5-T
- 下一篇: 如何在 FreeBSD 10.2 上安装