测试一个密钥是否存在于一个字典中并在同一个if中进行另一个测试

时间:2016-12-02 10:49:56

标签: python dictionary

以下代码使用if ... and ...:是否安全,即我们是否确定首先测试第一个条件,如果密钥不存在,则忽略第二个条件?

d = {'a': 1}
if 'b' in d and d['b'] == 2:
    print 'hello'

似乎是的,因为这不会产生任何错误。但是对于所有Python版本都是如此吗?

它永远不会生成KeyError: 'b'吗?

PS:这可能更加pythonic,没有歧义:

if 'b' in d:
    if d['b'] == 2:
        ...

1 个答案:

答案 0 :(得分:2)

是的,它被称为短路和

python2(Link to the doc)和python3.x(Link to the doc)都支持短路andor