如何检查Python字典中是否存在多个键?

时间:2010-05-11 19:24:46

标签: python

我有以下字典:

sites = {
    'stackoverflow': 1,
    'superuser': 2,
    'meta': 3,
    'serverfault': 4,
    'mathoverflow': 5
}

要检查上述词典中是否有多个键可用,我将执行以下操作:

'stackoverflow' in sites and 'serverfault' in sites

只需2次密钥查找即可维护上述内容。有没有更好的方法来处理在一个非常大的字典中检查大量的键?

4 个答案:

答案 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)

您打算进行多少次查找?我认为你使用的方法很好。

如果有几十个,几百个等等你正在比较的密钥,可以将所有目标密钥放在一个列表中,然后遍历列表,检查以确保每个项目都在字典中。