Python:为什么“2 in [1,2,3] == True”returns False?
Python: Why "2 in [1,2,3] == True" returns False?
假设我在 Shell 中输入这个,然后我得到 True 。
>>>ar=[2,4,6,8]
>>>2 in ar
True
但是当我尝试使用它时,它不起作用
>>>if 2 in ar==True:
print("YES")
>>>
>>>
没用! if 条件为 False。我该怎么做才能检查带有循环的列表中是否存在某个术语?
例如:我得到了一些随机列表,我必须打印列表中出现的所有偶数?
这是因为对于比较运算符,x operator1 y operator2 z
等价于 (x operator1 y) and (y operator2 z)
除了 y
只计算一次。因此 2 in ar == True
等同于 (2 in ar) and (ar == True)
。 ar == True
为 False,因此 if
块不会执行。只需在 2 in ar
两边加上括号即可:if (2 in ar) == True:
不过您确实不需要 == True
。就做 if 2 in ar:
.
假设我在 Shell 中输入这个,然后我得到 True 。
>>>ar=[2,4,6,8]
>>>2 in ar
True
但是当我尝试使用它时,它不起作用
>>>if 2 in ar==True:
print("YES")
>>>
>>>
没用! if 条件为 False。我该怎么做才能检查带有循环的列表中是否存在某个术语? 例如:我得到了一些随机列表,我必须打印列表中出现的所有偶数?
这是因为对于比较运算符,x operator1 y operator2 z
等价于 (x operator1 y) and (y operator2 z)
除了 y
只计算一次。因此 2 in ar == True
等同于 (2 in ar) and (ar == True)
。 ar == True
为 False,因此 if
块不会执行。只需在 2 in ar
两边加上括号即可:if (2 in ar) == True:
不过您确实不需要 == True
。就做 if 2 in ar:
.