Heim >Backend-Entwicklung >Python-Tutorial >Warum erhalte ich einen IndexError, wenn ich einer leeren Python-Liste Werte zuweise?
Zuweisungsfehler bei der Listenmanipulation: Index-Out-of-Range-Rätsel
Wenn Sie versuchen, eine Liste zu erstellen, indem Sie jedem Element einzeln Werte zuweisen, haben Sie Möglicherweise tritt ein IndexError auf. Dies liegt daran, dass Python-Listen im Gegensatz zu Arrays in anderen Sprachen keine vorab zugewiesenen Indizes oder Speicherzuweisungen haben.
Im angegebenen Code:
i = [1, 2, 3, 5, 8, 13] j = [] k = 0 for l in i: j[k] = l k += 1
Das Problem ist, dass die Listen leer sind Liste j enthält zunächst keine Elemente. Um j[k] in der ersten Iteration einen Wert zuzuweisen, muss j mindestens ein Element haben, aber das ist hier nicht der Fall. Daher der IndexError.
Um Elemente an eine Liste anzuhängen, ohne dass dieser Fehler auftritt, verwenden Sie die append()-Methode:
for l in i: j.append(l)
Für direkte Zuweisungen wie Arrays können Sie eine vorab erstellen Liste mit None-Werten und überschreibe sie dann:
j = [None] * len(i) k = 0 for l in i: j[k] = l k += 1
Denken Sie daran, dass Python-Listen dynamisch erweitert werden, wenn Elemente hinzugefügt werden, sodass kein expliziter Speicher erforderlich ist Zuordnung.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich einen IndexError, wenn ich einer leeren Python-Liste Werte zuweise?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!