为什么排序时'10'小于'7'?

时间:2019-07-05 15:42:25

标签: python python-3.x

>>> '10'>'3'
False
>>>
>>> a=['10','9','8','7']
>>> a.sort()
>>> a
['10', '7', '8', '9']

为什么'10'小于'3'?我尝试了更多的值,但同样的事情也在发生。

>>> '10'>'3'
False
>>>
>>> a=['10','9','8','7']
>>> a.sort()
>>> a
['10', '7', '8', '9']
>>>

我希望'10'>'3'的输出为True

3 个答案:

答案 0 :(得分:1)

由于您将值作为字符串进行比较,其中将检查第一个字符串中的每个字符与第二个字符串中的相同索引字符,因此结果将有所不同。例如,比较'10''3'时,'1'将放置在3之前,因此,字符串'10'将放置在'3'之前。订购。

如果要将它们与数字进行比较,则必须删除它们周围的撇号:

>>> 10>3

插入:

>>> '10'>'3'

答案 1 :(得分:1)

要查看发生了什么,只需尝试ord()

ord('1')
49
ord('7')
55

所以'10' > '7'变成49 > 55,显然是false

答案 2 :(得分:0)

目前,您正在比较要相互比较的数字的字符串表示形式。

如果您省略数字周围的引号,那应该很好。然后数字被解释为整数。