Corriger l'erreur Too Many Indices for Array en Python

Vaibhav Vaibhav 14 avril 2022
Corriger l'erreur Too Many Indices for Array en Python

Les tableaux ou les listes et les tuples sont des structures de données contiguës en Python. Ils peuvent stocker des éléments appartenant à un seul type de données et à plusieurs types de données ensemble. Par exemple, nous pouvons avoir une liste, un tableau ou un tuple contenant cinq éléments entiers, trois nombres à virgule flottante, sept objets de classe, deux ensembles et huit valeurs booléennes.

Pour accéder à ces éléments, nous pouvons utiliser les index de ces éléments. Ces structures de données sont basées sur l’index 0. Supposons que nous essayons d’accéder à un élément à un index supérieur ou égal à la longueur de la structure de données. Dans ce cas, nous rencontrons l’exception IndexError.

Dans cet article, nous allons apprendre à résoudre ce problème en Python.

Comment résoudre l’erreur too many indices for array en Python ?

Pour corriger l’exception IndexError, il faut s’assurer qu’ils n’entrent pas un index égal ou supérieur à la longueur de la structure de données.

L’approche mentionnée ci-dessus est évidente. Cependant, nous pouvons toujours écrire un stub ou une fonction utilitaire pour récupérer une valeur dans une liste ou un tuple. Cette fonction garantira que nous obtenons la valeur d’un index s’il existe et gère en toute sécurité les valeurs d’index non valides. Reportez-vous au code Python suivant pour la même chose.

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"))

Production :

None
3.0
False
None
None

Avant de retourner la valeur à l’index spécifié, la fonction stub ci-dessus s’assure que l’index est de type int, que la structure de données est de type list ou tuple, et que l’index est inférieur à la longueur de la structure de données. Une fois que toutes les vérifications sont passées, nous pouvons retourner en toute sécurité la valeur requise à l’index.

Une implémentation plus simple de la fonction get_value() consisterait à utiliser les blocs try et except. Reportez-vous au code Python suivant pour la même chose.

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"))

Production :

None
3.0
False
None
None

Les blocs try et except renverraient None si quelque chose ne va pas et une valeur réelle si toutes les conditions requises sont remplies avec succès.

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.

Article connexe - Python Error