繁体   English   中英

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

[英]Sorting a 2D list in Python

我有一个2D列表:

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先来。

使用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]]

你可以试试:

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

输出:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM