出于某种原因,在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
>>>
Run Code Online (Sandbox Code Playgroud)
值得庆幸的是,在python 3中,这消失了,比较这些类型会引发异常.