当字符串与python内部进行比较时,字符串和整数与ASCII代码进行比较然后进行比较或者它是如何进行的。我知道str> int但是内部比较是如何发生的。
“a”> 1
答案 0 :(得分:8)
在您的示例中,1 < "a"
因为int
的“i”按字母顺序排在string
的“s”之前。
来自docs:
不同类型的对象,不同的数字类型和 不同的字符串类型,从不比较平等;这样的对象是有序的 一致但任意(以便排序异构数组 产生一致的结果)。
我相信这是python 3中改变的事情之一(你会在这里获得TypeError
)。
至于如何在CPython中完成,除了数字之外的不同类型的对象按其类型名称排序;不支持正确比较的相同类型的对象按其地址排序。 请注意,这是实施的一部分,而不是语言的一部分。
答案 1 :(得分:-2)
您应该检查内置字符串对象的__gt__
方法的来源以了解详细信息,但我的猜测是使用1
函数将str
转换为字符串,然后将两者进行比较。