У меня есть один список кортежей: a = [(10, 11), (5, 5), (2, 3), (6, 7), (8, 3), (9, 2)]
и один простой список со значениями b = [10, 9, 10, 2, 8, 3]
. Затем я перечисляю второй список и сортирую его для некоторых целей.
b_enumerated = list(enumerate(b))
# [(0, 10), (1, 9), (2, 10), (3, 2), (4, 8), (5, 3)]
b_sorted = sorted(b_enumerated, key=lambda x: x[1], reverse=True)
# [(0, 10), (2, 10), (1, 9), (4, 8), (5, 3), (3, 2)]
Теперь я хочу изменить свой первый список в соответствии со вторым отсортированным списком, поэтому я ожидаю получить [(10, 11), (2, 3), (5, 5), (8, 3), (9, 2), (6, 7)]
(кортежи оригинала список в порядке индекса упорядоченного списка: 0, 2, 1, 4, 5, 3), где, например, мой перечисляемый первый список - [(0, (10, 11)), (1, (5, 5)), (2, (2, 3)), (3, (6, 7)), (4, (8, 3)), (5, (9, 2))]
.
Как мне достичь ожидаемого результата? Возможно, мне нужно использовать какое-то индексирование, потому что сортировка сжатых списков не помогла.
Спасибо.