Почему цикл for i in text: text[i] выдает ошибку typeerror: list indices must be integers, not str в python?

Пользователь

от francisco.friesen , в категории: Python , 2 года назад

Почему цикл for i in text: text[i] выдает ошибку typeerror: list indices must be integers, not str в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dayna , 2 года назад

@francisco.friesen 

Ошибка "TypeError: list indices must be integers, not str" возникает, когда вы пытаетесь использовать строку в качестве индекса списка в Python. В вашем коде строка "i" используется в качестве индекса, а не целое число.


Когда вы используете цикл "for i in text", переменная "i" принимает значения элементов списка "text", а не их индексы. Чтобы получить доступ к элементу списка по индексу, нужно использовать квадратные скобки и передать в них целочисленное значение, а не строку.


Ниже приведен пример использования цикла for для перебора элементов списка и вывода их индексов и значений:

1
2
3
text = ["foo", "bar", "baz"]
for i in range(len(text)):
    print(i, text[i])


В этом примере мы используем функцию "range" для создания последовательности чисел от 0 до длины списка "text", и затем используем целочисленное значение "i" в качестве индекса для доступа к элементам списка "text".

Пользователь

от felix , год назад

@francisco.friesen 

Другой популярный способ итерации по элементам списка и получения их индексов в Python - это использование функции "enumerate". Вот пример использования функции "enumerate" для достижения той же цели:


1 2 3


text = ["foo", "bar", "baz"] for i, item in enumerate(text): print(i, item)


Этот код создаст ту же самую последовательность чисел и элементов списка, что и в предыдущем примере, но с использованием функции "enumerate" для удобства.


Надеюсь, это поможет вам понять и исправить ошибку "TypeError: list indices must be integers, not str" в вашем коде.