我有以下字典:
sites = {
'stackoverflow': 1,
'superuser': 2,
'meta': 3,
'serverfault': 4,
'mathoverflow': 5
}
要检查上述词典中是否有多个键可用,我将执行以下操作:
'stackoverflow' in sites and 'serverfault' in sites
只需2次密钥查找即可维护上述内容。有没有更好的方法来处理在一个非常大的字典中检查大量的键?
答案 0 :(得分:12)
你可以假装dict的键是一个集合,然后使用set.issubset:
set(['stackoverflow', 'serverfault']).issubset(sites) # ==> True
set(['stackoverflow', 'google']).issubset(sites) # ==> False
答案 1 :(得分:9)
您可以使用all
:
print( all(site in sites for site in ('stackoverflow','meta')) )
# True
print( all(site in sites for site in ('stackoverflow','meta','roger')) )
# False
答案 2 :(得分:1)
mysites = ['stackoverflow', 'superuser']
[i for i in mysites if i in sites.keys()] # ==> sites in the list mysites that are in your dictionary
[i for i in mysites if i not in sites.keys()] # ==> sites in the list mysites that are not in your dictionary
答案 3 :(得分:0)
您打算进行多少次查找?我认为你使用的方法很好。
如果有几十个,几百个等等你正在比较的密钥,可以将所有目标密钥放在一个列表中,然后遍历列表,检查以确保每个项目都在字典中。