Python: для цикла список дает IndexError - PullRequest
1 голос
/ 18 апреля 2019
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

for i in a:
   print(a[i])

IndexError: list index out of range

Я не понимаю, почему я получаю эту ошибку.

Ответы [ 3 ]

4 голосов
/ 18 апреля 2019

Вы ссылаетесь на значение, а не на индекс. Попробуйте:

for i in range(len(a)):
    print(a[i])
3 голосов
/ 18 апреля 2019

На самом деле вам не нужен индекс в приведенном вами примере, поскольку вы печатаете только значения элементов в списке, и в этом случае будет достаточно печатать элементы напрямую:

for i in a:
    print(i)
1 голос
/ 18 апреля 2019

Если вы хотите индекс элемента, можно enumerate данные в массиве, используя

for i, e in enumerate(a):
    print(a[i]) # assuming this is just a placeholder for a more complex instruction

, что вы хотите, где i это индекс и e (значение) элемента в списке.Но часто вам не нужен индекс, так как вы хотите использовать значение элемента напрямую.В этих случаях лучше сделать просто

for e in a:
    print(e)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...