j
пустой список, но вы пытаетесь записать элемент [0]
в первой итерации, которой еще нет.
Вместо этого попробуйте следующее, чтобы добавить новый элемент в конец списка:
for l in i:
j.append(l)
Конечно, вы никогда бы не сделали это на практике, если бы все, что вы хотели сделать, это скопировать существующий список. Вы бы просто сделали:
j = list(i)
В качестве альтернативы, если вы хотите использовать список Python как массив в других языках, вы можете предварительно создать список с его элементами, для которых установлено нулевое значение ( None
в приведенном ниже примере), а затем перезаписать значения в определенных позициях:
i = [1, 2, 3, 5, 8, 13]
j = [None] * len(i)
#j == [None, None, None, None, None, None]
k = 0
for l in i:
j[k] = l
k += 1
Необходимо понимать, что list
объект не позволит вам присвоить значение отсутствующему индексу.
append
это правильное решение для вашего случая использования, однако в списке Python есть метод вставки, который можно вставить непосредственно в i-ую позицию в списке.j.insert(k, l)