W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
怎樣在兩個(gè)字典中尋尋找相同點(diǎn)(比如相同的鍵、相同的值等等)?
考慮下面兩個(gè)字典:
a = {
'x' : 1,
'y' : 2,
'z' : 3
}
b = {
'w' : 10,
'x' : 11,
'y' : 2
}
為了尋找兩個(gè)字典的相同點(diǎn),可以簡(jiǎn)單的在兩字典的keys()或者items()方法返回結(jié)果上執(zhí)行集合操作。比如:
# 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) }
這些操作也可以用于修改或者過(guò)濾字典元素。比如,假如你想以現(xiàn)有字典構(gòu)造一個(gè)排除幾個(gè)指定鍵的新字典。下面利用字典推導(dǎo)來(lái)實(shí)現(xiàn)這樣的需求:
# 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}
一個(gè)字典就是一個(gè)鍵集合與值集合的映射關(guān)系。字典的keys()方法返回一個(gè)展現(xiàn)鍵集合的鍵視圖對(duì)象。鍵視圖的一個(gè)很少被了解的特性就是它們也支持集合操作,比如集合并、交、差運(yùn)算。所以,如果你想對(duì)集合的鍵執(zhí)行一些普通的集合操作,可以直接使用鍵視圖對(duì)象而不用先將它們轉(zhuǎn)換成一個(gè)set。
字典的items()方法返回一個(gè)包含(鍵,值)對(duì)的元素視圖對(duì)象。這個(gè)對(duì)象同樣也支持集合操作,并且可以被用來(lái)查找兩個(gè)字典有哪些相同的鍵值對(duì)。
盡管字典的values()方法也是類(lèi)似,但是它并不支持這里介紹的集合操作。某種程度上是因?yàn)橹狄晥D不能保證所有的值互不相同,這樣會(huì)導(dǎo)致某些集合操作會(huì)出現(xiàn)問(wèn)題。不過(guò),如果你硬要在值上面執(zhí)行這些集合操作的話(huà),你可以先將值集合轉(zhuǎn)換成set,然后再執(zhí)行集合運(yùn)算就行了。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: