Heim > Artikel > Backend-Entwicklung > Warum löst mein Code beim Summieren von Listenelementen einen IndexError aus?
Korrektur von Indexfehlern beim Zugriff auf Listenelemente innerhalb einer Schleife
Der Versuch, über einen Index innerhalb einer Schleife auf Elemente einer Liste zuzugreifen, kann manchmal zu Folgendem führen: Fehler wie IndexError oder TypeError. Um diese Probleme zu lösen, ist es wichtig, die richtige Schleifenstruktur zu verstehen.
Fehlerbeschreibung:
Beachten Sie den folgenden Code:
<code class="python">def sumAnArray(ar): theSum = 0 for i in ar: theSum = theSum + ar[i] return theSum</code>
Dieser Code zielt darauf ab um die Werte einer Liste zu summieren. Bei der Ausführung wird jedoch ein IndexError ausgelöst.
Schleifenoperation:
Bei Verwendung einer for-Schleife mit einem iterierbaren Objekt wie einer Liste wird die Schleifenvariable (i in diesem case) stellt das aktuelle Element des Iterables dar. Im angegebenen Code durchläuft die Schleife die Elemente von ar, wobei i den Wert jedes Elements übernimmt.
Fehleranalyse:
Im obigen Code tritt der Fehler auf, wenn versucht, auf ar[i] zuzugreifen, wodurch versucht wird, das Element von ar abzurufen, das dem Wert von i entspricht. In einer for-Schleife mit einem iterierbaren Element repräsentiert i jedoch das Element selbst, nicht seinen Index. Der Versuch, ar direkt mit i zu indizieren, führt zu einem IndexError, wenn i außerhalb des Bereichs liegt (d. h. größer oder gleich der Länge der Liste).
Korrekte Schleife:
Um diesen Fehler zu beheben, sollte die Schleife so geändert werden, dass sie korrekt auf Elemente der Liste zugreift:
<code class="python">for i in ar: theSum = theSum + i</code>
Diese Version iteriert über die Elemente in der Liste und fügt den Wert jedes Elements zur Summe hinzu, wobei der Index vermieden wird -bezogene Fehler.
Alternative Lösung:
Ein alternativer Ansatz, um die Elemente einer Liste zu durchlaufen und über den Index darauf zuzugreifen, besteht darin, einen Bereich zu verwenden, anstatt über die Liste zu iterieren selbst:
<code class="python">for i in range(len(ar)): theSum = theSum + ar[i]</code>
Dieser Ansatz stellt sicher, dass i alle gültigen Indexwerte für a übernimmt, wodurch Indexierungsfehler vermieden werden.
Das obige ist der detaillierte Inhalt vonWarum löst mein Code beim Summieren von Listenelementen einen IndexError aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!