溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python 3 判斷2個(gè)字典相同

發(fā)布時(shí)間:2020-09-12 02:43:59 來(lái)源:腳本之家 閱讀:179 作者:zhangpeterx 欄目:開(kāi)發(fā)技術(shù)

下面先給大家介紹下Python 3 判斷2個(gè)字典相同的方法,

Python自帶的數(shù)據(jù)結(jié)構(gòu)dict非常好用,之前不知道怎么比較2個(gè)字典是否相同,做法是一個(gè)一個(gè)key比較過(guò)去。。。

現(xiàn)在想到可以直接用==進(jìn)行判斷?。。?/p>

a = dict(one=1, two=2, three=3)
b = {'one': 1, 'two': 2, 'three': 3}
c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))
d = dict([('two', 2), ('one', 1), ('three', 3)])
e = dict({'three': 3, 'one': 1, 'two': 2})
print(a == b == c == d == e)

Python內(nèi)部對(duì)==進(jìn)行了重載,幫你實(shí)現(xiàn)了對(duì)key和value進(jìn)行判斷。

知識(shí)點(diǎn)擴(kuò)展:

Python3 查找兩字典的相同點(diǎn)

問(wèn)題

怎樣在兩個(gè)字典中尋找相同點(diǎn)(比如相同的鍵、相同的值等)?

解決方案

考慮下面兩個(gè)字典:

a = {
  'x' : 1,
  'y' : 2,
  'z' : 3
}
b = {
  'w' : 10,
  'x' : 11,
  'y' : 2
}

尋找兩個(gè)字典的相同點(diǎn),可以在兩字典的 keys()或者 items() 方法返回結(jié)果上執(zhí)行集合操作。例如:

# Find keys in common
a.keys() & b.keys() # Return { 'x', 'y' }
# Find keys in a that are not in b
a.keys() - b.keys() # Return { 'z' }
# Find (key,value) pairs in common
a.items() & b.items() # Return { ('y', 2) }

這些集合操作,也可以用于修改或者過(guò)濾字典元素,例如:

c = {key:a[key] for key in a.keys() - {'w', 'z'}}
print(c)
{'y': 2, 'x': 1}

討論

一個(gè)字典就是一個(gè)鍵集合與值集合的映射關(guān)系。

字典的 keys() 方法返回一個(gè)展現(xiàn)鍵集合的鍵視圖對(duì)象,該對(duì)象支持集合操作,比如集合并、交、差運(yùn)算。 所以,可以直接對(duì)字典的鍵執(zhí)行普通的集合操作,而不用先將它們轉(zhuǎn)換成一個(gè) set。

字典的 items() 方法返回一個(gè)包含 (鍵,值) 對(duì)的元素視圖對(duì)象,該對(duì)象同樣也支持集合操作。

字典的 values() 方法返回結(jié)果,并不支持集合操作,因?yàn)橹狄晥D不能保證所有的值互不相同,這樣會(huì)導(dǎo)致某些集合操作出現(xiàn)問(wèn)題,可以先將值集合轉(zhuǎn)換成 set,然后再執(zhí)行集合運(yùn)算。

總結(jié)

以上所述是小編給大家介紹的Python 3 判斷2個(gè)字典相同,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)億速云網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI