如何检查Python字典中多个键的存在?
我有一个字典,里面存了一些键值对:
sites = {
'stackoverflow': 1,
'superuser': 2,
'meta': 3,
'serverfault': 4,
'mathoverflow': 5
}
为了检查这个字典里是否有超过一个的键,我会这样做:
'stackoverflow' in sites and 'serverfault' in sites
这样做只需要查找两个键,维护起来还不错。那么有没有更好的方法来检查一个很大的字典里的很多键呢?
4 个回答
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
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
12
你可以把字典的键当作一个集合,然后使用集合的子集检查功能:
set(['stackoverflow', 'serverfault']).issubset(sites) # ==> True
set(['stackoverflow', 'google']).issubset(sites) # ==> False