Как получить доступ к элементам внутри цикла? - PullRequest
2 голосов
/ 23 декабря 2019

Я совершенно новичок в Python. Я пытаюсь получить доступ и напечатать элемент ith массива, используя этот код.

import time
from random import random

array = []
array1 = []

a = 0

for i in range(1,100000000):
    a = a + 1
    time.sleep(.2)

    x = random()

    array.append(x)
    #print(array)
    array1[a] = array[a]*0.5

    print(array[a])

, но он возвращает мне эту ошибку:

Traceback (most recent call last):
  File "C:/Users/carlo/.PyCharmCE2019.3/config/scratches/PaulMcW(Plotting)/StoringData.py", line 17, in <module>
    array1[a] = array[a]*0.5
IndexError: list index out of range

Как я могу выполнить эту простую задачу?

1 Ответ

1 голос
/ 23 декабря 2019

Проблема в том, что массивы начинаются с нуля, поэтому array[1] еще не существует, когда вы пытаетесь получить к нему доступ, только array[0]. Но вам не нужно явно отслеживать длину;array[-1] всегда ссылается на последний элемент непустого массива.

(Минимальное исправление - начать с a = -1.)

Я не думаю, что sleepдобавляет любое значение, так что, может быть, убрать его тоже.

for i in range(99999999):
    x = random()
    array.append(x)
    array1.append(x*0.5)
    print(array[a])
...