Python排序多维列表的第一个元素基于已排序的第二个元素

时间:2019-10-22 17:57:09

标签: python arrays list sorting multidimensional-array

我有一个这样的多维列表(第二个元素已经排序)

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

2 个答案:

答案 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]))