如何按字母顺序排序整数

tho*_*mas 14 python sorting alphabetical-sort

如何按字母顺序对整数进行排序?像这样:

integers = [10, 1, 101, 2, 111, 212, 100000, 22, 222, 112, 10101, 1100, 11, 0]
Run Code Online (Sandbox Code Playgroud)

在Python控制台上打印如下

[0, 1, 10, 100000, 101, 10101, 11, 1100, 111, 112, 2, 212, 22, 222]
Run Code Online (Sandbox Code Playgroud)

我试过这个

def sort_integers(integers):
    return sorted(integers)
Run Code Online (Sandbox Code Playgroud)

但我想你必须这样做

def sort_integers(integers):
    return sorted(integers, key = lambda....... )
Run Code Online (Sandbox Code Playgroud)

我只是不知道在lambda之后要写什么?

Joh*_*nes 29

sorted(integers, key=str)

->
[0, 1, 10, 100000, 101, 10101, 11, 1100, 111, 112, 2, 212, 22, 222]
Run Code Online (Sandbox Code Playgroud)

Explanation:str是一个将整数转换为字符串的函数.由于sorted默认情况下按字母顺序对字符串进行排序,因此完全符合您的要求.


Wil*_*sem 11

你可以简单地str用作key:

sorted(integers,key=str)
Run Code Online (Sandbox Code Playgroud)

因此,对于每个元素,str调用该函数,将函数转换intstring.这本身并不壮观.但字符串的比较是不同的:它按字典顺序排序.

>>> sorted([0, 1, 10, 100000, 101, 10101, 11, 1100, 111, 112, 2, 212, 22, 222],key=str)
[0, 1, 10, 100000, 101, 10101, 11, 1100, 111, 112, 2, 212, 22, 222]
Run Code Online (Sandbox Code Playgroud)