Python:为什么" 2在[1,2,3] == True"返回False?

时间:2016-03-02 17:53:11

标签: python boolean-expression

假设我在Shell中输入,然后我得到True。

template <typename Derived, int N>
struct CRTP {
    static constexpr int num = N;
};

struct A : CRTP<A, 5> {

};

但是当我尝试使用它时,它不起作用

>>>ar=[2,4,6,8]
>>>2 in ar
True

它不起作用! if条件为False。我该怎么做才能检查带有循环的列表中是否有一个术语? 例如:我有一些随机列表,我必须打印列表中的所有偶数?

1 个答案:

答案 0 :(得分:7)

这是因为对于比较运算符,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: