Python元组比较奇怪的行为

时间:2015-11-07 18:12:28

标签: python python-2.7 tuples

有人可以解释一下这种行为吗?

In[11]: (1, 2) in [(True, 2)]
Out[11]: True

In[12]: (1, 2) in [(True, True)]
Out[12]: False

In[13]: (1, 2) in [(True, False)]
Out[13]: False

In[14]: ("1", 2) in [(True, 2)]
Out[14]: False

感觉就像一个错误 - 每当我检查一个元组是否在元组列表中时,整数1总是等于True。如果可以解释的话,我不想将它报告给Python bug跟踪器。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

我想这里的“技巧”是1 == True0 == False都评价为True

您的行111213意味着所有真正的价值观应该相等。如果是这种情况,1 == 2将评估为True,这显然是一个错误。