Beheben den Fehler Too Many Indices for Array in Python

Vaibhav Vaibhav 14 April 2022
Beheben den Fehler Too Many Indices for Array in Python

Arrays oder Listen und Tupel sind zusammenhängende Datenstrukturen in Python. Sie können Elemente eines einzelnen Datentyps und mehrere Datentypen zusammen speichern. Beispielsweise können wir eine Liste, ein Array oder ein Tupel haben, das fünf Integer-Elemente, drei Fließkommazahlen, sieben Klassenobjekte, zwei Mengen und acht boolesche Werte enthält.

Um auf diese Elemente zuzugreifen, können wir die Indizes dieser Elemente verwenden. Diese Datenstrukturen sind 0-Index-basiert. Angenommen, wir versuchen, auf ein Element mit einem Index zuzugreifen, der größer oder gleich der Länge der Datenstruktur ist. In diesem Fall stoßen wir auf die Ausnahme IndexError.

In diesem Artikel erfahren wir, wie Sie dieses Problem in Python beheben können.

So beheben den Too Many Indices for Array Fehler in Python

Um die Ausnahme IndexError zu beheben, sollte man darauf achten, dass sie keinen Index eingeben, der gleich oder größer als die Länge der Datenstruktur ist.

Der oben erwähnte Ansatz ist naheliegend. Wir können jedoch immer noch einen Stub oder eine Hilfsfunktion schreiben, um einen Wert aus einer Liste oder einem Tupel abzurufen. Diese Funktion stellt sicher, dass wir den Wert an einem Index erhalten, falls vorhanden, und sicher mit ungültigen Indexwerten umgeht. Siehe dazu den folgenden Python-Code.

def get_value(structure, index):
    if not isinstance(index, int):
        return None

    if not isinstance(structure, (list, tuple)):
        return None

    if index >= len(structure):
        return None

    return structure[index]


a = ["Hello", "World", 1, 2.0, 3.00000, True, False]
print(get_value([], 4.0))
print(get_value(a, 4))
print(get_value(a, -1))
print(get_value(None, 8))
print(get_value("Hello World", "Python"))

Ausgabe:

None
3.0
False
None
None

Bevor der Wert am angegebenen Index zurückgegeben wird, stellt die obige Stub-Funktion sicher, dass der Index vom Typ int ist, die Datenstruktur vom Typ list oder tuple ist und der Index kleiner als die Länge der Datenstruktur ist . Sobald alle Prüfungen bestanden sind, können wir den erforderlichen Wert sicher am Index zurückgeben.

Eine einfachere Implementierung der Funktion get_value() wäre die Verwendung des try- und except-Blocks. Siehe dazu den folgenden Python-Code.

def get_value(structure, index):
    try:
        return structure[index]
    except:
        return None


a = ["Hello", "World", 1, 2.0, 3.00000, True, False]
print(get_value([], 4.0))
print(get_value(a, 4))
print(get_value(a, -1))
print(get_value(None, 8))
print(get_value("Hello World", "Python"))

Ausgabe:

None
3.0
False
None
None

Der try- und except-Block würde None zurückgeben, wenn etwas schief geht, und einen tatsächlichen Wert, wenn alle erforderlichen Bedingungen erfolgreich erfüllt sind.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Verwandter Artikel - Python Error