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:.