j
ist eine leere Liste, aber Sie versuchen, [0]
in der ersten Iteration, die noch nicht vorhanden ist , in ein Element zu schreiben .
Versuchen Sie stattdessen Folgendes, um am Ende der Liste ein neues Element hinzuzufügen:
for l in i:
j.append(l)
Natürlich würden Sie dies in der Praxis niemals tun, wenn Sie nur eine vorhandene Liste kopieren möchten. Sie würden einfach tun:
j = list(i)
Wenn Sie die Python-Liste wie ein Array in anderen Sprachen verwenden möchten, können Sie alternativ eine Liste vorab erstellen, deren Elemente auf einen Nullwert gesetzt sind ( None
im folgenden Beispiel), und später die Werte an bestimmten Positionen überschreiben:
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
Zu beachten ist, dass Sie mit einem list
Objekt einem nicht vorhandenen Index keinen Wert zuweisen können.
append
ist die richtige Lösung für Ihren Anwendungsfall, es gibt jedoch eine Einfügemethode für die Python-Liste, die direkt an die i-te Position in der Liste eingefügt werden kann.j.insert(k, l)