如何检查字典列表中的键是否完全相同

时间:2019-04-01 15:11:43

标签: python dictionary

我想检查字典是否包含与键列表中完全相同的键(不多也不少)。我目前正在使用all()和长度检查来做到这一点。有没有更好的办法?谢谢!

d = {'1': 'one', '3': 'three', '2': 'two'}

key_list = ['1', '2', '3']

all(col in d for col in key_list) and len(d) == 3
True

3 个答案:

答案 0 :(得分:5)

set(d) == set(key_list)

set(d)等于{gmds指出的set(d.keys())

答案 1 :(得分:0)

列表对于维护顺序非常有用,但是set对于检查成员资格要好得多:

d = {'1': 'one', '3': 'three', '2': 'two'}

key_list = set(['1', '2', '3'])

all(col in d for col in key_list) and len(d) == 3

set的查找时间为O(1),而list的查找时间为O(N)

答案 2 :(得分:0)

您可以执行以下操作:

>>> d = {'1': 'one', '3': 'three', '2': 'two'}
>>> key_list = ['1', '2', '3']
>>> sorted(d) == sorted(key_list)
True
>>>