Python:按列表对列表中的列表进行数字排序

Mar*_*kF6 1 python sorting

我有一个像这样的列表:

list1 = [['art_25', 'title', 'author'], ['art_12', 'title', 'author'], ['art_4', 'title', 'author']]
Run Code Online (Sandbox Code Playgroud)

如何对输出等于此列表进行排序

[['art_4', 'title', 'author'], ['art_12' ...], ['art_25', ...]] ?
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

Cor*_*mer 5

您可以使用sortedkey参数.你可以创建一个lambda分裂在'_'角色上的表达式,int然后将其转换为然后按该值排序.

list1 = [['art_25', 'title', 'author'],
         ['art_12', 'title', 'author'],
         ['art_4', 'title', 'author']]

>>> sorted(list1, key=lambda i: int(i[0].split('_')[1]))
[['art_4', 'title', 'author'],
 ['art_12', 'title', 'author'],
 ['art_25', 'title', 'author']]
Run Code Online (Sandbox Code Playgroud)