Python列表大于数字
我发现列表大于数字Python列表大于数字,python,python-2.7,Python,Python 2.7,我发现列表大于数字 >>> [1,2,3] > 1000 True 这有什么原因吗?我无法使用int([1,2,3])将列表转换为int。int无法转换为具有list(1000)的列表。那么python是如何比较这两种类型的呢?在这种“不匹配”类型的情况下,类型是按类型名称按字典顺序列出的:“列表”按字母顺序排在“int”之后,因此它更大 CPython实现细节:不同类型的对象,除了 数字按其类型名称排序;相同类型的对象 不支持正确比较的按地址排序。 () 没有关于排序
>>> [1,2,3] > 1000
True
这有什么原因吗?我无法使用int([1,2,3])
将列表转换为int。int无法转换为具有list(1000)
的列表。那么python是如何比较这两种类型的呢?在这种“不匹配”类型的情况下,类型是按类型名称按字典顺序列出的:“列表”按字母顺序排在“int”之后,因此它更大
CPython实现细节:不同类型的对象,除了
数字按其类型名称排序;相同类型的对象
不支持正确比较的按地址排序。
()
没有关于排序的语言规范(除了它是一致的这一事实)。碰巧的是,CPython是最常见的实现,其中有按类型名称按字典顺序排列的语言细节。根据
大多数其他内置类型的对象比较不相等,除非它们是相同的对象;一个对象比另一个对象小还是大的选择是任意的,但在程序的一次执行中是一致的
我正要这么说。在Python 3中,它们是不可比较的。此外,在Python 2.x中,没有一个对象的比较总是比其他任何东西都少。@Uku Loskit“类型是按字典顺序列出的”Where?@machine-earthing&eyquem:更新了一点答案。@eyquem的意思是“通过对类型名称的字典顺序比较来比较对象”。@Mike,没有。您会得到一个类型错误发现它:埋藏在:“除了
==
和之外的比较=不同类型之间的代码>将引发异常,除非该类型明确支持“当我发现一个bug但它已经被修复时,这很好”。