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

Aka*_*Bkn 7 python dictionary

如果字典包含多个键,是否有一个很好的方法来测试?

简短版本:

d = {}
if 'a' in d and 'b' in d and 'c' in d:
    pass #do something
Run Code Online (Sandbox Code Playgroud)

谢谢.

编辑:我只能使用python2.4 -.-

Mag*_*off 21

您可以这样使用set.issubset(...):

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

Python 3引入了一个集合文字语法,该语法已被反向移植到Python 2.7,所以现在可以编写以下内容:

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


Pau*_*McG 20

if all(test in d for test in ('a','b','c')):
    # do something
Run Code Online (Sandbox Code Playgroud)


Joh*_*ooy 5

在Python3中你可以写

set("abc")<=d.keys()
Run Code Online (Sandbox Code Playgroud)

在Python2.7中你可以写

d.viewkeys()>=set("abc")
Run Code Online (Sandbox Code Playgroud)

当然,如果该键不单字符可以替换 set("abc")使用set(('a', 'b', 'c'))