如何测试字典是否包含某些键

9 投票
5 回答
11306 浏览
提问于 2025-04-16 02:22

有没有什么好的方法可以检查一个字典里是否包含多个键?

简短的说就是:

d = {}
if 'a' in d and 'b' in d and 'c' in d:
    pass #do something

谢谢。

补充:我只能使用python2.4 -.-

5 个回答

6

在Python3中,你可以这样写

set("abc")<=d.keys()

在Python2.7中,你可以这样写

d.viewkeys()>=set("abc")

当然,如果键不是单个字符,你可以把 set("abc")替换成set(('a', 'b', 'c'))

21

在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。比如,有人可能在使用一个叫做“库”的东西时,发现它的某些功能没有按预期工作。这种情况可能会让人感到困惑,因为我们不知道问题出在哪里。

通常,解决这类问题的第一步是检查我们使用的代码,看看有没有写错的地方。接下来,我们可以查阅相关的文档,看看有没有说明这个功能应该怎么用,或者有没有其他人遇到过类似的问题。

如果还是找不到解决办法,可以考虑在网上发帖求助,比如在StackOverflow这样的论坛上。发帖时,记得把你的代码和遇到的问题描述清楚,这样别人才能更好地帮助你。

总之,遇到问题时不要慌张,先检查自己的代码,再查阅资料,最后再寻求帮助。这样一步一步来,问题通常都能得到解决。

if all(test in d for test in ('a','b','c')):
    # do something
23

你可以使用 set.issubset(...),像这样:

>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> set(['a', 'b']).issubset(d)
True
>>> set(['a', 'x']).issubset(d)
False

Python 3 引入了一种新的集合表示法,这种写法也被移植到了 Python 2.7,所以现在你可以这样写:

>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> {'a', 'b'}.issubset(d)
True
>>> {'a', 'x'}.issubset(d)
False

撰写回答