Heim > Backend-Entwicklung > Python-Tutorial > Warum erhalte ich einen IndexError, wenn ich einer leeren Python-Liste Werte zuweise?

Warum erhalte ich einen IndexError, wenn ich einer leeren Python-Liste Werte zuweise?

Linda Hamilton
Freigeben: 2024-12-26 22:56:11
Original
619 Leute haben es durchsucht

Why Do I Get an IndexError When Assigning Values to an Empty Python List?

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
Nach dem Login kopieren

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)
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage