在python中用子列表对列表进行排序

1 python sorting list

所以我有这个列表和子列表:

[[39, 4, 43], [23, 3, 26], [46, 5, 51], [66, 15, 51], [66, 7, 73], [10, 2, 12], [79, 8, 87]]
Run Code Online (Sandbox Code Playgroud)

我需要按每个子列表中第三个元素的顺序对列表进行排序。但是在这种情况下,如果其中两个或多个相等,则:

[46, 5, 51], [66, 15, 51]
Run Code Online (Sandbox Code Playgroud)

排序时,算法应将具有最大第一元素的子列表放在第一位,因此所需的输出应像这样。

 [[79, 8, 87],[66, 7, 73],[66, 15, 51],[46, 5, 51],[39, 4, 43],[23, 3, 26],[10, 2, 12]]
Run Code Online (Sandbox Code Playgroud)

有什么建议可以解决吗?谢谢或您的时间和帮助

Chr*_*per 8

您可以将排序顺序设置为元组,如下所示:

l = [[39, 4, 43], [23, 3, 26], [46, 5, 51], [66, 15, 51], [66, 7, 73], [10, 2, 12], [79, 8, 87]]

sorted(l, key = lambda x: (x[2],x[0]), reverse=True)
Run Code Online (Sandbox Code Playgroud)

结果:

[[79,8,87],[66,7,73],[66,15,51],[46,5,51],[39,4,43],[23,3,26],[ 10、2、12]]