Вы можете сортировать индексы, используя значения в качестве ключей:
indexes = range(len(list1))
indexes.sort(key=list1.__getitem__)
Чтобы получить отсортированные списки с отсортированными индексами:
sorted_list1 = map(list1.__getitem__, indexes)
sorted_list2 = map(list2.__getitem__, indexes)
В вашем случае вы не должны иметь list1
, list2
, а скорее один список пар:
data = [(3, 'three'), (2, 'two'), (4, 'four'), (1, 'one'), (1, 'one2')]
Его легко создать; его легко сортировать в Python:
data.sort() # sort using a pair as a key
Сортировать по первому значению:
data.sort(key=lambda pair: pair[0])