在您的示例中,1 < "a"
因为for的“ i”int
按字母顺序在for的“ s”之前string
。
从文档:
不同类型的对象(不同的数字类型和不同的字符串类型除外)绝不会相等。这样的对象被一致但任意地排序(以便对异构数组进行排序会产生一致的结果)。
我相信这是python 3改变的事情之一(您会在TypeError
这里得到)。
至于在cpython中是如何完成的,除了数字以外,其他类型的对象均按其类型名称排序;不支持正确比较的相同类型的对象按其地址排序。
python中的string和int的内部比较
在您的示例中,1 < "a"
因为for的“ i”int
按字母顺序在for的“ s”之前string
。
从文档:
不同类型的对象(不同的数字类型和不同的字符串类型除外)绝不会相等。这样的对象被一致但任意地排序(以便对异构数组进行排序会产生一致的结果)。
我相信这是python 3改变的事情之一(您会在TypeError
这里得到)。
至于在cpython中是如何完成的,除了数字以外,其他类型的对象均按其类型名称排序;不支持正确比较的相同类型的对象按其地址排序。