python中string和int的内部比较

时间:2012-02-20 06:24:28

标签: python

当字符串与python内部进行比较时,字符串和整数与ASCII代码进行比较然后进行比较或者它是如何进行的。我知道str> int但是内部比较是如何发生的。

  
    

“a”> 1

  

2 个答案:

答案 0 :(得分:8)

在您的示例中,1 < "a"因为int的“i”按字母顺序排在string的“s”之前。

来自docs

  

不同类型的对象,不同的数字类型和   不同的字符串类型,从不比较平等;这样的对象是有序的   一致但任意(以便排序异构数组   产生一致的结果)。

我相信这是python 3中改变的事情之一(你会在这里获得TypeError)。


至于如何在CPython中完成,除了数字之外的不同类型的对象按其类型名称排序;不支持正确比较的相同类型的对象按其地址排序。 请注意,这是实施的一部分,而不是语言的一部分。

答案 1 :(得分:-2)

您应该检查内置字符串对象的__gt__方法的来源以了解详细信息,但我的猜测是使用1函数将str转换为字符串,然后将两者进行比较。