Skip to main content
 首页 » 编程设计

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

2025年05月04日1398°冷暖

所以我有这个带有子列表的列表:

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