j
é uma lista vazia, mas você está tentando gravar no elemento [0]
na primeira iteração, que ainda não existe.
Tente o seguinte, para adicionar um novo elemento ao final da lista:
for l in i:
j.append(l)
Obviamente, você nunca faria isso na prática se tudo que você queria fazer era copiar uma lista existente. Você apenas faria:
j = list(i)
Como alternativa, se você quiser usar a lista Python como uma matriz em outros idiomas, poderá pré-criar uma lista com seus elementos configurados para um valor nulo ( None
no exemplo abaixo) e, posteriormente, substituir os valores em posições específicas:
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
A única coisa a perceber é que um list
objeto não permitirá que você atribua um valor a um índice que não existe.
append
é a solução certa para o seu caso de uso, no entanto, existe um método de inserção na lista python que pode ser inserido diretamente na i-ésima posição na lista.j.insert(k, l)