Python列表大于数字

Key*_*eyo 20 python python-2.7

我发现列表大于数字.

>>> [1,2,3] > 1000
True
Run Code Online (Sandbox Code Playgroud)

这有什么原因吗?我无法将列表转换为int int([1,2,3]).int无法转换为带有的列表list(1000).那么python如何比较两者呢?

Uku*_*kit 27

在这种"不匹配"类型的情况下,类型按字典顺序列出类型名称:"list"按字母顺序排在"int"之后,因此它更大.

CPython实现细节:除了数字之外的不同类型的对象按其类型名称排序; 不支持正确比较的相同类型的对象按其地址排序.(来源)

订购没有语言规范(除了它是一致的事实).恰好在这种情况下,CPython是最常见的实现,其中存在按类型名称按字典顺序排序的语言细节.

  • 正要说这个.在Python 3中,它们是不具有可比性的.此外,在Python 2.x中,无比其他任何东西都要比较少. (8认同)

rmm*_*mmh 10

根据Python参考手册,

内置类型的大多数其他对象比较不相等,除非它们是同一个对象; 一个对象被认为是小于还是大于另一个对象的选择是在程序的一次执行中任意但一致地做出的.