Python对列表列表进行排序

Jam*_*ard 1 python sorting sorted python-2.7

我目前正在尝试对列表进行排序,如下所示.我需要按照每个子列表中的第二个元素的顺序对列表进行排序.

chars = [['Andrew', '1'], ['James', '12'], ['Sam', '123'], ['Zane', '2']]
Run Code Online (Sandbox Code Playgroud)

我目前正在使用此命令:

chars = sorted(chars, key=itemgetter(1))
Run Code Online (Sandbox Code Playgroud)

我的理想输出是:

chars = [['Andrew', '1'], ['Zane', '2'], ['James', '12'], ['Sam', '123']]
Run Code Online (Sandbox Code Playgroud)

ozg*_*gur 10

您需要先将第二个元素转换为整数以进行排序:

>>> sorted(chars, key=lambda x: int(x[1]))
[['Andrew', '1'], ['Zane', '2'], ['James', '12'], ['Sam', '123']]
Run Code Online (Sandbox Code Playgroud)

如果你想使用operator.itemgetter:

>>> sorted(chars, key=lambda x: int(itemgetter(1)(x)))
[['Andrew', '1'], ['Zane', '2'], ['James', '12'], ['Sam', '123']]
Run Code Online (Sandbox Code Playgroud)