[英]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.