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

在python中使用子列表对列表进行排序,python,list,sorting,Python,List,Sorting,所以我有一个包含子列表的列表: [[39, 4, 43], [23, 3, 26], [46, 5, 51], [66, 15, 51], [66, 7, 73], [10, 2, 12], [79, 8, 87]] 我需要按照每个子列表中第三个元素的顺序对列表进行排序。但如果其中两个或两个以上相等,则如下所示: [46, 5, 51], [66, 15, 51] 排序时的算法应将第一个元素最大的子列表放在第一位,因此所需的输出应如下所示 [[79, 8, 87],[66, 7, 73],

所以我有一个包含子列表的列表:

[[39, 4, 43], [23, 3, 26], [46, 5, 51], [66, 15, 51], [66, 7, 73], [10, 2, 12], [79, 8, 87]]
我需要按照每个子列表中第三个元素的顺序对列表进行排序。但如果其中两个或两个以上相等,则如下所示:

[46, 5, 51], [66, 15, 51]
排序时的算法应将第一个元素最大的子列表放在第一位,因此所需的输出应如下所示

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

有什么提示吗?感谢您的时间和帮助

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

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)
结果:

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


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

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)
结果:

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

还需要进行这种排序:

from operator import itemgetter

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=itemgetter(2, 0), reverse=True)
还需要进行这种排序:

from operator import itemgetter

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=itemgetter(2, 0), reverse=True)
可能的重复可能的重复