Corriger l'erreur Too Many Indices for Array en Python

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.

LinkedIn GitHub

Article connexe - Python Error

  • Correction de TabError en Python
  • Correction de l'erreur Python Return Outside Function
  • Correction de l'erreur String Must Be Indices en Python
  • Correction de l'erreur syntaxerror: unexpected character after line continuation character en Python
  • Correction de l'erreur TypeError: iteration over a 0-d array dans Python NumPy
  • Correction de l'erreur TypeError: must be str, not int en Python