检查字典是否有多个键

2 投票
3 回答
2979 浏览
提问于 2025-04-18 14:23

我该如何检查一个字典(其实是类似字典的对象)是否包含一组给定的(复数形式)呢?

到目前为止,我使用了:

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

撰写回答