Просто используйте list(enumerate(some_list))
.
enumerate
генерирует кортежи, а вызов list
вытягивает все значения из этого генератора в список.
Любой другие ваши действия (например, распечатка списка или распаковка кортежа) служат только для замедления процесса.
Причина, по которой вы видите результаты, заключается в том, что вы полностью заменяете res
в каждом l oop, а res
включает в себя только индекс итерации.
В первой итерации у вас было i=0
и val=140
, а ваш набор значений списка res
равен [(0, 140), (0, 129), (0, 118), ...]
. Во втором итераторе было i=1
и val=129
, и вы установили res
на [(1, 140), (1, 129), ...]
. Каждый l oop вы просто заменяли res
новым списком, используя индекс из l oop, поэтому в конце res
использовал последний индекс из l oop (85).
Также, как отмечено в комментарии kaya3 , вы не должны использовать встроенные имена, такие как len
(или list
) в качестве имен переменных, потому что это помешает вам от обычного использования встроенных функций.
len = [140, 129, 118, ...]
print(len(len)) # error: len is not a function