在Python中对2D列表进行排序

时间:2018-07-07 04:50:28

标签: python list sorting

我有一个二维列表:

mylist = [[9,7, 2, 2], [1,8, 2, 2], [2,9, 2, 2]]

使用排序功能,列表的排序如下:

[[1, 8, 2, 2], [2, 9, 2, 2], [9, 7, 2, 2]]

但是我想对列表进行如下排序:

[[9, 7, 2, 2],[1, 8, 2, 2], [2, 9, 2, 2]]

,我要用列表的最后一位而不是列表的第一位, 就像使用排序功能一样-它按列表的第一位排序。 我想按最后一位对它进行排序,例如7小于8和9,所以7在第一位。

2 个答案:

答案 0 :(得分:5)

sorted()lambda一起使用 试试这个

In [1]: a=[[9, 7, 2, 2],[1, 8, 2, 2], [2, 9, 2, 2]]
In [4]: sorted(a,key=lambda a:a[::-1])
Out[4]: [[9, 7, 2, 2], [1, 8, 2, 2], [2, 9, 2, 2]]

答案 1 :(得分:3)

您可以尝试:

sorted(a,key=lambda a:list(reversed(a)))

输出:

[[9, 7, 2, 2], [1, 8, 2, 2], [2, 9, 2, 2]]