j
es una lista vacía, pero está intentando escribir en el elemento [0]
en la primera iteración, que aún no existe.
En su lugar, intente lo siguiente para agregar un nuevo elemento al final de la lista:
for l in i:
j.append(l)
Por supuesto, nunca haría esto en la práctica si todo lo que quisiera hacer fuera copiar una lista existente. Simplemente harías:
j = list(i)
Alternativamente, si desea utilizar la lista de Python como una matriz en otros idiomas, puede crear previamente una lista con sus elementos establecidos en un valor nulo ( None
en el ejemplo a continuación), y luego, sobrescribir los valores en posiciones 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
Lo que debe darse cuenta es que un list
objeto no le permitirá asignar un valor a un índice que no existe.
append
es la solución adecuada para su caso de uso, sin embargo, hay un método de inserción en la lista de Python que puede insertarse directamente en la i-ésima posición en la lista.j.insert(k, l)