Что-то вроде следующего:
>>> myList = [1, 2, 3, 100, 5]
>>> [i[0] for i in sorted(enumerate(myList), key=lambda x:x[1])]
[0, 1, 2, 4, 3]
enumerate(myList)
дает вам список, содержащий кортежи (индекс, значение):
[(0, 1), (1, 2), (2, 3), (3, 100), (4, 5)]
Вы сортируете список, передавая его sorted
и указание функции для извлечения ключа сортировки (второй элемент каждого кортежа; для этого и нужен lambda
. Наконец, исходный индекс каждого отсортированного элемента извлекается с использованием [i[0] for i in ...]
понимание списка.