HOWTO · Python
Python IndexError: Listenzuweisungsindex außerhalb des gültigen Bereichs
In diesem Artikel erfahren Sie, wie Sie den Indexfehler `Index Error List Assignment Index Out of Range` in Python beheben. Außerdem werde ich die verschiedenen möglichen Lösungen für diesen Fehler besprechen, nämlich die Funktionen append() und insert().
Auf dieser Seite
In Python wird der IndexError: list assignment index out of range ausgelöst, wenn Sie versuchen, auf einen Index einer Liste zuzugreifen, die gar nicht existiert. Ein Index ist die Position von Werten innerhalb eines iterierbaren Elements, z. B. einer Zeichenfolge, einer Liste oder eines Arrays.
In diesem Artikel erfahren Sie, wie Sie den Indexfehler Index Error List Assignment Index Out-of-Range in Python beheben.
Python IndexError: Listenzuweisungsindex außerhalb des gültigen Bereichs
Sehen wir uns ein Beispiel für den Fehler an, um ihn zu verstehen und zu lösen.
Codebeispiel:
# error program --> IndexError: list assignment index out of range
i = [7, 9, 8, 3, 7, 0] # index range (0-5)
j = [1, 2, 3] # index range (0-3)
print(i, "\n", j)
print(f"\nLength of i = {len(i)}\nLength of j = {len(j)}")
print(f"\nValue at index {1} of list i and j are {i[1]} and {j[1]}")
print(
f"\nValue at index {3} of list i and j are {i[3]} and {j[3]}"
) # error because index 3 isn't available in list j
Ausgang:
[7, 9, 8, 3, 7, 0]
[1, 2, 3]
Length of i = 6
Length of j = 3
Value at index 1 of list i and j are 9 and 2
IndexError: list assignment index out of range
Der Grund hinter dem IndexError: list assignment index out of range im obigen Code ist, dass wir versuchen, auf den Wert am Index 3 zuzugreifen, der in der Liste j nicht verfügbar ist.
Beheben Sie den IndexError: Listenzuweisungsindex außerhalb des Bereichs in Python
Um diesen Fehler zu beheben, müssen wir die Indizierung von Iterables in dieser Fallliste anpassen. Angenommen, wir haben zwei Listen und Sie möchten die Liste a durch die Liste b ersetzen.
Codebeispiel:
a = [1, 2, 3, 4, 5, 6]
b = []
k = 0
for l in a:
b[k] = l # indexError --> because the length of b is 0
k += 1
print(f"{a}\n{a}")
Ausgang:
IndexError: list assignment index out of range
Sie können der Liste b keine Werte zuweisen, da die Länge 0 ist und Sie versuchen, Werte am kth-Index b[k] = I hinzuzufügen, sodass der Indexfehler erhöht wird. Sie können es mit append() und insert() beheben.
Beheben Sie IndexError: Listenzuweisungsindex außerhalb des gültigen Bereichs mit der Funktion append()
Die Funktion append() fügt Elemente (Werte, Strings, Objekte usw.) am Ende der Liste hinzu. Es ist hilfreich, weil Sie sich nicht um die Indexkopfschmerzen kümmern müssen.
Codebeispiel:
a = [1, 2, 3, 4, 5, 6]
b = []
k = 0
for l in a:
# use append to add values at the end of the list
j.append(l)
k += 1
print(f"List a: {a}\nList b: {a}")
Ausgang:
List a: [1, 2, 3, 4, 5, 6]
List b: [1, 2, 3, 4, 5, 6]
Beheben Sie IndexError: Listenzuweisungsindex außerhalb des gültigen Bereichs mit der Funktion insert()
Die Funktion insert() kann Werte direkt an der k'ten Position in der Liste einfügen. Es braucht zwei Argumente, insert(index, value).
Codebeispiel:
a = [1, 2, 3, 5, 8, 13]
b = []
k = 0
for l in a:
# use insert to replace list a into b
j.insert(k, l)
k += 1
print(f"List a: {a}\nList b: {a}")
Ausgang:
List a: [1, 2, 3, 4, 5, 6]
List b: [1, 2, 3, 4, 5, 6]
Zusätzlich zu den beiden oben genannten Lösungen können Sie, wenn Sie Python-Listen wie normale Arrays in anderen Sprachen behandeln möchten, Ihre Listengröße mit None-Werten vordefinieren.
Codebeispiel:
a = [1, 2, 3, 4, 5, 6]
b = [None] * len(i)
print(f"Length of a: {len(a)}")
print(f"Length of b: {len(b)}")
print(f"\n{a}\n{b}")
Ausgang:
Length of a: 6
Length of b: 6
[1, 2, 3, 4, 5, 6]
[None, None, None, None, None, None]
Nachdem Sie Ihre Liste mit Dummy-Werten None definiert haben, können Sie diese entsprechend verwenden.
Abschluss
Es könnte noch ein paar manuelle Techniken und Logiken geben, um den IndexError: list assignment index out of range in Python zu behandeln. Dieser Artikel gibt einen Überblick über die beiden gängigen Listenfunktionen, die uns helfen, den Indexfehler in Python zu behandeln, während zwei Listen ersetzt werden.
Wir haben auch eine alternative Lösung besprochen, um die Liste vorzudefinieren und sie als Array zu behandeln, ähnlich den Arrays anderer Programmiersprachen.