Доступ к индексу элемента в цикле for

В этом примере посмотрим, как при обходе списка циклом for получить не только значение элемента, но и его индекс. Покажем три способа: через enumerate(), через enumerate() с произвольным стартом и через классический range(len(...)).

Что нужно знать

Перед изучением примера полезно понимать:

Пример 1. Через enumerate

my_list = [21, 44, 35, 11]

for index, val in enumerate(my_list):
    print(index, val)

Вывод

0 21
1 44
2 35
3 11

С помощью enumerate() можно выводить и индекс, и значение.

  • В заголовке цикла указываем две переменные — index и val. Имена могут быть любыми.

  • Внутри цикла печатаем их.

Функция enumerate() добавляет к итерируемому объекту счётчик (то есть index) и возвращает пары «индекс — значение».

Пример 2. Старт нумерации не с нуля

my_list = [21, 44, 35, 11]

for index, val in enumerate(my_list, start=1):
    print(index, val)

Вывод

1 21
2 44
3 35
4 11

Параметр start задаёт, с какого числа начинать счёт индекса.

Пример 3. Без enumerate()

my_list = [21, 44, 35, 11]

for index in range(len(my_list)):
    value = my_list[index]
    print(index, value)

Вывод

0 21
1 44
2 35
3 11

Получить индекс можно и без enumerate().

  • Циклом for пробегаем все значения от 0 до длины my_list. Переменная index в этом случае стартует с нуля.

  • На каждой итерации получаем значение элемента: value = my_list[index].

  • Печатаем индекс и значение.