2015-11-07 77 views
1

有人可以解釋這種行爲嗎?Python元組比較奇怪行爲

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跟蹤器。

回答

1

我想這裏的「訣竅」是1 == True0 == False都評估爲True

您的線路11,1213意味着所有的真值應該相等。如果是這種情況,1 == 2將評估爲True這顯然是一個錯誤。