检查字典是否有多个键
我该如何检查一个字典(其实是类似字典的对象)是否包含一组给定的键(复数形式)呢?
到目前为止,我使用了:
d = { 'a': 1, 'b': 2, 'c': 3 }
keys = ('a', 'b')
def has_keys(d, keys):
for key in keys:
if not key in d:
return False
return True
有没有更优雅、更符合Python风格的方法来做到这一点呢?
3 个回答
-1
你可以直接使用关键词“in”。比如说:
d = { 'a': 1, 'b': 2, 'c': 3 }
这里我们定义了一个字典d,里面有三个键值对。接下来,我们可以检查某个键是否在这个字典里。
如果我们想检查字典d里有没有键'd',可以这样写:
if 'd' in d:
如果有,就打印'yes';如果没有,就打印'no'。
2
你也可以试试这样:
>>> names = {
'a' : 11,
'b' : 10,
'c' : 14,
'd': 7
}
>>> keys = ('a', 'b')
>>> set(keys).issubset(names)
True
14
使用内置的函数 all()
>>> d = { 'a': 1, 'b': 2, 'c': 3 }
>>> keys = ('a', 'b')
>>> all(elem in d for elem in keys)
True
>>> keys = ('a', 'b', 'd')
>>> all(elem in d for elem in keys)
False