我发现一个列表比一个数字大。
>>> [1,2,3] > 1000
True
这是不是有什么原因呢?我不能用int([1,2,3])
把列表转换成整型。无法使用list(1000)
将整型转换为列表。那么python是如何比较这两者的呢?
发布于 2011-08-24 05:21:52
在这种“不匹配”类型的情况下,类型按类型名称的字典顺序列出:"list“位于字母顺序中的"int”之后,因此它更大。
CPython实现细节:除数字以外的不同类型的对象按其类型名称排序;不支持正确比较的相同类型的对象按其地址排序。(source)
没有关于排序的语言规范(除了它是一致的事实之外)。碰巧的情况是,CPython是最常见的实现,其中存在按类型名按字典顺序排序的语言细节。
发布于 2011-08-24 05:23:55
除非它们是相同的对象,否则大多数内置类型的其他对象都是不相等的;在程序的一次执行中,可以任意选择一个对象比另一个对象大还是小。
https://stackoverflow.com/questions/7167657
复制相似问题