所以我有这个带有子列表的列表:
[[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]]
