Почему for l oop ведет себя так? - PullRequest
1 голос
/ 10 апреля 2020
 #python_code
    a_list=[1,2,3,4]
    for item in a_list:
      print(a_list[item])


> #Output:
>     2
>     3
>     4
>     Traceback (most recent call last):
>       File "main.py", line 3, in <module>
>         print(a_list[item])
>     IndexError: list index out of range

Я пытаюсь выучить python и изучал некоторые уроки, когда подошел к этому. Кто-нибудь может объяснить, что здесь происходит? Первый элемент не печатается. Интересно почему?

Ответы [ 2 ]

1 голос
/ 10 апреля 2020

Вам нужно сделать это:

# python_code
a_list = [1, 2, 3, 4]
for item in a_list:
   print(item)

Потому что в вашем коде:

a_list=[1,2,3,4]
    for item in a_list:
      print(a_list[item]) 

Это будет повторяться как a_list [1], a_list [2], a_list [3 ], a_list [4], но индексирование массива начинается с 0, поэтому a_list [4] будет вне индекса, потому что последний индекс должен быть длиной 1 массива, чтобы ваш код работал. В вашем случае a_list [3] будет последним элементом вашего массива, т.е. 4

0 голосов
/ 10 апреля 2020

Здесь первое значение «item» - это первый элемент a_list, который равен «1». print (a_list [item]) подразумевает print (a_list [1]), который равен '2'. (Массив начинается с нуля, поэтому a_list [0] = 1)

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...