Что не так с циклом for по списку?

Рейтинг: 1Ответов: 1Опубликовано: 15.02.2023

Почему при одинаковых элементах списка не выводятся их индексы?

lst = list('aaaba')
print(lst)

for lettr in lst:
    print(lst.index(lettr), lettr)

Вывод получаем такой: ['a', 'a', 'b', 'a'] 0 a 0 a 2 b 0 a

Если цикл все-таки перебрал и вывел элементы списка, почему не вывел их индексы?

Ответы

▲ 3Принят

Это связано с тем, что метод index ищет первое вхождение элемента в список. Т.е. сколько бы букв 'a' у вас в списке ни было, сколько бы раз вы не вызывали метод index всегда получите один и тот же ответ (в вашем случае 0).
Если вы хотите пробежаться по парам (element, index) - используйте enumerate:

for index, letter in enumerate(lst):
    print(index, letter)