在示例Hadoop reduce程序中,存在这样的“if”语句。我想知道它何时意味着什么 在“if”语句中使用相同的变量“a”两次,如下所示
if a and a == b:
print "It is working!"
答案 0 :(得分:6)
只有当a == b
真实时才会测试相等(a
)。
可以改写为
if a:
if a == b:
print("It is working!")
请注意运算符优先级: 不 等于if (a and a) == b
。
答案 1 :(得分:4)
这里没有真正的魔力。
如果双方都是真实的,and
表达是真实的。
a
如果不是False
,None
,数字0或空集合,则属于真理。
a == b
如果a
和b
相等(在某种意义上与他们的类型相符),则是真实的。
因此,例如,如果a
和b
可以是列表或None
,如果a
是非空列表并且{ {1}}是一个非空列表,具有相同的值。