If 语句顺序和键错误 python
If statement ordering and key error python
即使我检查字典中是否存在密钥,我也会遇到密钥错误:
def foo(d):
if (('element' in d.keys()) & (d['element'] == 1)):
print "OK"
foo({})
在documentation中我们可以读到:
The expression x and y first evaluates x; if x is false, its value is
returned; otherwise, y is evaluated and the resulting value is
returned.
任何人都可以向我解释这种行为吗?
&
是"bitwise and",and
是逻辑"and"运算符,它们不是一回事。
你应该使用 and
,你也可以删除不需要的括号以提高可读性。
您甚至不必调用 keys
方法:
if 'element' in d and d['element'] == 1:
即使我检查字典中是否存在密钥,我也会遇到密钥错误:
def foo(d):
if (('element' in d.keys()) & (d['element'] == 1)):
print "OK"
foo({})
在documentation中我们可以读到:
The expression x and y first evaluates x; if x is false, its value is returned; otherwise, y is evaluated and the resulting value is returned.
任何人都可以向我解释这种行为吗?
&
是"bitwise and",and
是逻辑"and"运算符,它们不是一回事。
你应该使用 and
,你也可以删除不需要的括号以提高可读性。
您甚至不必调用 keys
方法:
if 'element' in d and d['element'] == 1: