sorted()无法对字符列表进行排序

时间:2019-03-07 15:29:58

标签: python sorting

我想对包含整数作为char的列表进行排序。例如:

l = ['1', '10', '11', '12', '16', '17', '2', '24', '26', '27', '28', '30', '32', '34', '35', '36', '43', '45', '47', '49', '50', '6', '9']
print(sorted(l))

返回:

['1', '10', '11', '12', '16', '17', '2', '24', '26', '27', '28', '30', '32', '34', '35', '36', '43', '45', '47', '49', '50', '6', '9']

为什么sorted()行为异常?

1 个答案:

答案 0 :(得分:2)

排序的行为完全正确。

这些是字符串,而不是整数,因此sorted首先按第一个字符排序,然后按第二个字符排序。

如果我们要对['1', '2', '12']进行排序,则会得到['1', '12', '2']

1
12
2

sorted首先按第一列排序,然后按第二列排序。