我有一个这样的多维列表(第二个元素已经排序)
[[92, 25], [93, 25], [95, 27], [94, 27], [94, 27], [92, 27], [89, 27], [89, 27], [92, 27], [91, 30], [90, 30], [90, 30], [90, 30], [91, 30]]
所以我想根据第二个元素(降序)对第一个元素进行排序。预期输出:
[[93, 25], [92, 25], [95, 27], [94, 27], [94, 27], [92, 27], [92, 27], [89, 27], [89, 27], [91, 30], [91, 30], [90, 30], [90, 30], [90, 30]]
答案 0 :(得分:0)
让我明白这一点,您希望列表根据 second 元素以升顺序在元组中排在第一位,并用<是按降序顺序排列的em> first 元素?
假设您的元素是数字,则可以使用sorted(l, key=lambda x: (x[1], -x[0]))
进行操作。如果不是这样,则必须编写一个更复杂的比较函数。
答案 1 :(得分:0)
如果您想在原地进行排序,则
arr.sort(key=lambda x:(x[1], -x[0])
否则可以使用已排序
sortedArray = sorted(arr, key=lambda x: (x[1], -x[0]))