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

时间:2014-10-09 14:26:05

标签: python sorting

我有一个像这样的列表:

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

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

[['art_4', 'title', 'author'], ['art_12' ...], ['art_25', ...]] ?

感谢您的帮助!

1 个答案:

答案 0 :(得分: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']]