Skip to content Skip to sidebar Skip to footer

Python Tuple Comparison Odd Behavior

Can someone please explain this behavior? 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]: F

Solution 1:

It's something of an implementation detail of True, see Is False == 0 and True == 1 in Python an implementation detail or is it guaranteed by the language? for a discussion.

Solution 2:

The "trick" here I suppose is that 1 == True and 0 == False both evaluate to True.

Your lines 11, 12 and 13 imply that all truthy values should be equal. If that were the case though, 1 == 2 would evaluate to True which would clearly be a bug.

Post a Comment for "Python Tuple Comparison Odd Behavior"