如何对在python中存储为字符串的整数列表进行排序

Ash*_*him -1 python sorting string python-3.x

我试图对实际上是整数的字符串列表进行排序,但我没有得到正确的排序值。我如何以根据字符串的整数值对其进行排序的方式对其进行排序?

a = ['10', '1', '3', '2', '5', '4']
print(sorted(a))
Run Code Online (Sandbox Code Playgroud)

输出:

['1', '10', '2', '3', '4', '5']
Run Code Online (Sandbox Code Playgroud)

想要的输出:

['1', '2', '3', '4', '5', '10']
Run Code Online (Sandbox Code Playgroud)

ted*_*dcp 5

我们必须使用 lambda 作为键,并在排序函数发生之前将每个字符串转换为 int。

sorted(a,key=lambda i: int(i))

Output :
     ['1', '2', '3', '4', '5', '10']
Run Code Online (Sandbox Code Playgroud)

更短的方式 -> sorted(a,key=int)。感谢@Mark 发表评论。

  • 我认为这是正确的做法。FWIW,您可以简单地“sorted(a,key=int)”并避免 lambda。 (2认同)