Примечание: Функция enumerate()
присваивает индекс каждому элементу в повторяемом объекте
Итак, posarr = [*enumerate(arr)]
создаст новый массив кортежей, где первым элементом кортежа будет индекс , а вторым элементом будет массив элемент с этим индексом.
После posarr = posarr.sort(key = lambda it:it[1])
, posarr
будет None
, потому что list.sort()
ничего не возвращает. Сортирует массив на месте . Это должно быть так: posarr.sort(key = lambda it:it[1])
.
posarr[i]
вернет кортеж с индексом i
, поэтому для доступа к элементу по этому индексу вам нужно сделать что-то вроде это posarr[i][1]
. posarr[i][0]
- это индекс элемента posarr[i][1]
.
Итак, posarr
не является 2-мерным массивом , это просто массив кортежей .