dic1 = {'a':'a','b':'c','c':'d'}
dic2 = {'b':'a','a':'c','c':'d'}
dic1.keys() =>['a', 'b', 'c']
dic2.keys() =>['b', 'a', 'c']
dic1和dic2具有相同的密鑰,但順序不同。Python:如何知道兩個字典是否有相同的密鑰
如何判斷它們是否有相同的鍵(不考慮順序)?
dic1 = {'a':'a','b':'c','c':'d'}
dic2 = {'b':'a','a':'c','c':'d'}
dic1.keys() =>['a', 'b', 'c']
dic2.keys() =>['b', 'a', 'c']
dic1和dic2具有相同的密鑰,但順序不同。Python:如何知道兩個字典是否有相同的密鑰
如何判斷它們是否有相同的鍵(不考慮順序)?
蟒蛇2.7
dict views: 支持直接操作集等
>>> dic1 = {'a':'a','b':'c','c':'d'}
>>> dic2 = {'b':'a','a':'c','c':'d'}
>>> dic1.viewkeys() == dic2.viewkeys()
True
>>> dic1.viewkeys() - dic2.viewkeys()
set([])
>>> dic1.viewkeys() | dic2.viewkeys()
set(['a', 'c', 'b'])
同樣在3.X:(THX @lennart)
>>> dic1 = {'a':'a','b':'c','c':'d'}
>>> dic2 = {'b':'a','a':'c','c':'d'}
>>> dic1.keys() == dic2.keys()
True
>>> dic1.keys() - dic2
set()
>>> dic1.keys() | dic2
{'a', 'c', 'b'}
蟒蛇2.4 +
set operation:直接迭代過字典的鍵成一組
>>> dic1 = {'a':'a','b':'c','c':'d'}
>>> dic2 = {'b':'a','a':'c','c':'d'}
>>> set(dic1) == set(dic2)
True
set(dic1.keys()) == set(dic2.keys())
@Summer:字典的鍵不能包含重複的元素,由dict的定義。 – 2011-01-11 10:05:01
我不知道你怎麼落幕讓keys()
回報,你的無序列表,但sorted(dict1.keys()) == sorted(dict2.keys())
應該這樣做。
我們可以使用所有
all(k in dic2 for k in dic1) and all(k in dic1 for k in dic2)
不要鍵(),如果可能的話進行排序。 – user469652 2011-01-11 09:58:19
爲什麼不呢?它*可能不會對關鍵字進行排序,但這是一個奇怪的任意限制。這是功課嗎? – 2011-01-11 10:05:27
「dic1和dic2具有相同的密鑰,但順序不同。」 - 這是一個python字典中的無意義 - 鍵沒有排序。 – eumiro 2011-01-11 10:32:06