我想检查字典是否包含与键列表中完全相同的键(不多也不少)。我目前正在使用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
答案 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
>>>