出于某种原因,在 Python 2.7 中表达式的形式为 tuple > list
返回 True
,但是tuple < list
和 tuple == list
返回 False
.这是为什么?
这个观察无论如何都不是我的原创。
最佳答案
tuple
和 list
不是同一类型。在比较不同类型的值时,Python 做了一些令人惊讶的事情,并且没有定义跨这些类型工作的比较器。它比较类名的字典顺序:
>>> class Coffee(object):
... pass
...
>>> class Tea(object):
... pass
...
>>> c = Coffee()
>>> t = Tea()
>>> c > t
False
>>> c == t
False
>>> c < t
True
>>>
幸运的是,在 python 3 中,这种情况消失了,比较此类类型会引发异常。
关于python - Python 中的一个奇怪事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7985696/