j
è un elenco vuoto, ma stai tentando di scrivere nell'elemento [0]
nella prima iterazione, che non esiste ancora.
Prova invece quanto segue, per aggiungere un nuovo elemento alla fine dell'elenco:
for l in i:
j.append(l)
Naturalmente, non lo faresti mai in pratica se tutto ciò che volevi fare fosse copiare un elenco esistente. Dovresti semplicemente fare:
j = list(i)
In alternativa, se si desidera utilizzare l'elenco Python come un array in altre lingue, è possibile pre-creare un elenco con i suoi elementi impostati su un valore null ( None
nell'esempio seguente) e, successivamente, sovrascrivere i valori in posizioni specifiche:
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
La cosa da capire è che un list
oggetto non ti permetterà di assegnare un valore a un indice che non esiste.
append
è la soluzione giusta per il tuo caso d'uso, tuttavia esiste un metodo di inserimento nell'elenco Python che può essere inserito direttamente nella posizione 1 dell'elenco.j.insert(k, l)