python中字符串和int的内部比较
当字符串与整数进行比较时,字符串和int是否与ASCII码进行内部比较,或者如何比较?我知道字符串的比较大于整数,但内部比较是如何进行的呢python中字符串和int的内部比较,python,python-2.x,Python,Python 2.x,当字符串与整数进行比较时,字符串和int是否与ASCII码进行内部比较,或者如何比较?我知道字符串的比较大于整数,但内部比较是如何进行的呢 >>> "a" > 1 True 在您的示例中,1,因为int的“i”按字母顺序排在字符串的“s”之前 从: 不同类型的对象,不同的数字类型和 不同的字符串类型,从不进行相等的比较;这些物体是有序的 一致但任意(以便对异构数组进行排序 产生一致的结果) 我相信这是Python3中改变的事情之一(这里会出现TypeError) 至于
>>> "a" > 1
True
在您的示例中,
1
,因为int
的“i”按字母顺序排在字符串的“s”之前
从:
不同类型的对象,不同的数字类型和
不同的字符串类型,从不进行相等的比较;这些物体是有序的
一致但任意(以便对异构数组进行排序
产生一致的结果)
我相信这是Python3中改变的事情之一(这里会出现TypeError
)
至于在CPython中是如何实现的,除了数字之外,不同类型的对象都是按类型名排序的;不支持正确比较的相同类型的对象按其地址排序请注意,这是实现的一部分,而不是语言的一部分。您应该检查内置string对象的\uugt\uugt
方法的源代码,以了解详细信息,但我猜1
使用str
函数转换为字符串,然后对两者进行比较 可能的重复+1了解详细信息,并注意这是一个实施细节。