Python元组比较异常行为
有人能解释一下这种行为吗Python元组比较异常行为,python,python-2.7,tuples,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 这感觉像个bug——每当我检查元组列表中是否有元组时,整数1总是等于True。如果可以解释
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
这感觉像个bug——每当我检查元组列表中是否有元组时,整数1总是等于True。如果可以解释的话,我不想向Python bug追踪器报告它。这是
True
的一个实现细节,请参阅以进行讨论。我想这里的“诀窍”是1==True
和0==False
都计算为True
您的行
11
、12
和13
意味着所有truthy值都应该相等。如果是这样的话,1==2
将评估为True
,这显然是一个错误。谢谢你给我指出这个答案,它有很多有用的信息!