Heim >Backend-Entwicklung >Python-Tutorial >Warum erhalte ich beim Summieren von Listenwerten einen IndexError in meiner „for i in ar'-Schleife?

Warum erhalte ich beim Summieren von Listenwerten einen IndexError in meiner „for i in ar'-Schleife?

Linda Hamilton
Linda HamiltonOriginal
2024-11-03 13:44:02939Durchsuche

Why Do I Get an IndexError in My

IndexError in der „for i in ar“-Schleife: Die Iteration verstehen

Beim Versuch, die Werte einer Liste mithilfe einer for-Schleife zu summieren, kann ein IndexError auftreten , TypeError oder falsche Ergebnisse. Dieser Fehler entsteht durch eine falsche Verwendung des Listenindex.

Bedenken Sie den folgenden Code:

<code class="python">def sumAnArray(ar):
    theSum = 0
    for i in ar:
        theSum = theSum + ar[i]
    return theSum</code>

Hier wollen wir die Liste durchlaufen und die Werte in theSum akkumulieren. Allerdings löst der Code einen IndexError aus, weil i jedes Element der Liste darstellt, nicht ihren Index.

Um die Liste korrekt zu durchlaufen und auf ihre Elemente zuzugreifen, sollte man den Code wie folgt ändern:

<code class="python">def sumAnArray(ar):
    theSum = 0
    for i in ar:
        theSum = theSum + i
    return theSum</code>

Alternativ kann man einen Bereich verwenden, um über gültige Listenindizes zu iterieren:

<code class="python">def sumAnArray(ar):
    theSum = 0
    for i in range(len(ar)):
        theSum = theSum + ar[i]
    return theSum</code>

Diese Modifikationen stellen sicher, dass i einen gültigen Index darstellt Index innerhalb der Liste, wodurch der IndexError verhindert und eine korrekte Berechnung der Summe ermöglicht wird.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Summieren von Listenwerten einen IndexError in meiner „for i in ar'-Schleife?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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