为什么元组比python中的列表大?

5 python python-2.7

考虑Python中的以下问题:

>>> () < []
Run Code Online (Sandbox Code Playgroud)

这句话产量False

>>> () > [] 
Run Code Online (Sandbox Code Playgroud)

收益真实.据我所知,[]等于False,但什么是空元组?

如果我们输入

>>> 1233 < (1,2)
Run Code Online (Sandbox Code Playgroud)

我们得到一个True,作为返回值.但为什么 ?

谢谢

roi*_*ppi 4

来自文档

运算符 <、>、==、>=、<= 和 != 比较两个对象的值。这些对象不必具有相同的类型。如果两者都是数字,则将它们转换为通用类型。否则,不同类型的对象总是比较不相等,并且顺序一致但任意。__cmp__您可以通过定义方法或丰富的比较方法(如3.4 节中所述)来控制非内置类型的对象的比较行为__gt__

(这种不寻常的比较定义用于简化排序以及 in 和 not in 运算符等操作的定义。 将来,不同类型对象的比较规则可能会改变。)

这是真的。在 python 3 中,这是一个TypeError.

() > []
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-3-d2326cfc55a3> in <module>()
----> 1 () > []

TypeError: unorderable types: tuple() > list()
Run Code Online (Sandbox Code Playgroud)

回到 python 2:文档强调这是一个任意但一致的顺序。

cPython 2 中,不相等的类型通过类型名称进行比较。tuple从字典顺序来看, “大于”也是如此list