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

Thi*_*Lam 8 python

我有以下字典:

sites = {
    'stackoverflow': 1,
    'superuser': 2,
    'meta': 3,
    'serverfault': 4,
    'mathoverflow': 5
}
Run Code Online (Sandbox Code Playgroud)

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

'stackoverflow' in sites and 'serverfault' in sites
Run Code Online (Sandbox Code Playgroud)

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

And*_*ffe 12

你可以假装dict的键是一个集合,然后使用set.issubset:

set(['stackoverflow', 'serverfault']).issubset(sites) # ==> True

set(['stackoverflow', 'google']).issubset(sites) # ==> False
Run Code Online (Sandbox Code Playgroud)


unu*_*tbu 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
Run Code Online (Sandbox Code Playgroud)