Я хочу отсортировать: список кортежей должен быть отсортирован по нескольким элементам в массиве.
Входной массив кортежей должен быть отсортирован по нескольким элементам в массиве. Для некоторых индексов его нужно отсортировать в неубывающем порядке: (обозначено 0), а для других - в неубывающем mder (обозначено 1) В редакторе ниже. вам нужно написать лямбда-функцию для достижения того же.
Взять, к примеру. входной массив будет arr = [(1,2,3),(3,2,1),(4,2,1), (6,4,3)]
с числом элементов n=4
и количеством элементов в каждом кортеже m = 3. Пусть входные индексы, по которым этот массив должен быть отсортирован, равны indices =[(2,0), (O, 1)]
, а длина равна k = 2
. Это означает, что нам нужно отсортировать наш массив на основе индекса 2 в неубывающем порядке, а затем на основе индекса 0 в неубывающем порядке. Первый. сортировка по index 2
в неубывающем порядке: мы получаем [(3,2,1),(4,2,1),(1,2, 3),(6,4,3)]
, а затем, сортировка по index 0
в неубывающем порядке, получаем [(4,2,1),[3,2,1),(6,4,3),(1,2,3)]
.
Примечание:
Вам необходимо реализовать устойчивую сортировку, т.е. в случае связи между элементами в позиции i,j
, такой, что i<=j
, а затем позиция в отсортированном массиве для этих элементов будет fi,fj
, затем fi<=fj
.
* 1022. * Описание функции:
Завершите функцию indexSort
в редакторе ниже. Вам просто нужно написать лямбда-функцию, необходимую для этого.
arr[arr[0],....arr[n-1]]
: массив индексов кортежей: массив кортежей из двух элементов
Пример 1:
arr=[(1,2,3),(3,2,1),(4,2,1), (6,4,3)]
indices=[(2,0), (O, 1)]
Output: [(4,2,1),[3,2,1),(6,4,3),(1,2,3)]
Объяснение:
- Сортировать по
index 2
в порядке убывания: [(3,2,1),(4,2,1),(1,2,3),(6,4,3)]
- Сортировать по
index 0
в порядке возрастания: [(4,2,1),(3,2,1),(6,4,3),(1,2,3)]