在python中进行字符串和int的内部比较 [重复]。

问题描述 投票:3回答:2

当一个字符串与一个整数进行比较时,字符串和int是否与ASCII码进行内部比较,还是如何比较? 我知道字符串的比较大于整数,但内部比较是如何进行的?

>>> "a" > 1
True
python python-2.x
2个回答
9
投票

在你的例子中。1 < "a" 因为 "一 "代表 int 䌹䌹 string.

来自 文件:

不同类型的对象,除了不同的数字类型和不同的字符串类型外,其他类型的对象从来不会进行等价比较;这种对象的排序是一致的,但却是任意的(这样对一个异质数组进行排序就会得到一致的结果)。

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


至于在CPython中是怎么做的,除了数字之外,不同类型的对象都是按照类型名来排序的;不支持正确比较的相同类型的对象是按照地址来排序的。 请注意,这是CPython的 实施,不是语言的一部分。


-2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.