Vous travailliez donc avec une liste ou un tableau en Python et avez probablement essayé de le découper. Mais au lieu du résultat attendu, vous obtenez une erreur qui dit "list index out of range". Pas de soucis, ça peut arriver à n'importe qui.

Explorons ce que signifie cette erreur, sa cause et comment la supprimer sans plus tarder.

Que signifie l'erreur "list index out of range" en Python ?

Lorsque Python génère une erreur "list index out of range", cela signifie que vous avez essayé de découper la liste au-delà de son dernier index.

Python identifie chaque élément d'une liste par son index. Et l'indice d'une liste commence à zéro. Par exemple, lorsque vous avez une liste de cinq éléments, son premier élément est sur l'index zéro, tandis que le dernier est sur le quatrième index.

Par exemple, dans une liste de cinq langages de programmation :

Langages = ["Python", "Go", "PHP", "C", "Perl"]

L'indexation de la liste ci-dessus est comprise entre zéro et quatre. Donc, essayer de le découper pour imprimer le cinquième élément comme illustré ci-dessous donne une erreur :

instagram viewer
imprimer (langues[5])
Sortir:
IndexError: l'index de la liste est hors plage

Dans l'exemple ci-dessus, Python essaie de rechercher le cinquième index dans la liste, et lorsqu'il ne le trouve pas, il génère l'erreur d'index de liste. C'est parce que le premier élément (Python) est à l'index zéro, tandis que le dernier (Perl) est à l'index quatre.

C'est la base de l'erreur "list index out of range". Comme dit, Python le lance chaque fois que vous essayez de découper une liste au-delà de son dernier index.

Comment supprimer l'erreur "list index out of range" en Python

Alors, comment pouvez-vous supprimer cette erreur? C'est facile.

Suite à la section précédente ci-dessus, vous pouvez imprimer les index à l'aide d'un pourboucle dans une liste en compréhension:

index = [langues.index (i) pour i dans les langues]
impression (index)
Sortir:
[0, 1, 2, 3, 4]

L'index d'une liste est la base du découpage en programmation. Ainsi, puisque vous connaissez l'indice le plus élevé de la liste pour la sortie ci-dessus (4), vous pouvez déchiffrer la limite de tranche.

Par conséquent, pour découper la liste et obtenir le dernier élément :

caractères imprimés (langues[4])
Sortir:
perle

Il affiche maintenant le résultat correct.

Et si vous voulez parcourir la liste en utilisant son index ?

Outre le régulier Python pour la boucle, vous pouvez également utiliser le concept d'index pour parcourir une liste. Bien que cette méthode puisse sembler ardue, elle est parfois inévitable. Par exemple, cela s'avère pratique si vous souhaitez trier une liste dans l'ordre inverse.

Cette méthode fonctionne en définissant un index initial et en l'incrémentant ou en le décrémentant de un jusqu'au dernier index disponible.

Pour imprimer les articles avec un numéro d'index croissant (du premier au dernier article), par exemple :

indice = 0 # Index initial
pour i dans les langues :
print (Langues[index])
indice +=1
Sortir:
Python
Va
PHP
C
perle

Mais que se passe-t-il si vous définissez l'index initial sur un au lieu de zéro? Regarde:

indice = 1 # Index initial
pour i dans les langues :
print (Langues[index])
indice +=1
Sortir:
Va
PHP
C
perle
IndexError: l'index de la liste est hors plage

Dans l'exemple ci-dessus, l'indexation commence à partir du deuxième élément (index un, Va). Ainsi, lors de l'incrémentation, la boucle ne s'arrête pas tant qu'elle n'a pas terminé le décompte des cinq éléments. Cela force l'index à augmenter de un jusqu'au dernier élément.

Par conséquent, la tranche atteint un cinquième index qui n'est pas disponible. Donc, il jette une erreur d'index. Cela signifie que l'indice augmente selon le schéma suivant pour chaque élément :

1=1, 1+1=2, 1+2=3, 1+3=4, 1+4=5 

Au lieu du modèle correct, qui est :

0=0, 0+1=1, 1+1=2, 1+2=3, 1+3=4

Comme vous pouvez le voir, la valeur la plus élevée de l'index ci-dessus est quatre, ce qui est correct puisque la boucle commence à incrémenter l'indexation à partir de zéro.

Par conséquent, définir l'index initial sur zéro comme vous l'avez fait dans le premier exemple de cette section supprime l'erreur "list index out of range" :

indice = 0 # Index initial
pour i dans les langues :
print (Langues[index])
indice +=1 #Augmente l'indice de un à chaque itération

Pour appliquer ce concept à la sortie des éléments dans l'ordre inverse, vous devrez soustraire un de la longueur du tableau. Cela oblige donc l'index à commencer à partir de quatre et à décompter jusqu'au premier index, zéro.

Ceci est utile si vous n'êtes pas sûr de la valeur de longueur de la liste provenant d'une source, par exemple une base de données.

Voici un exemple :

index = (len (Langues)-1)
pour i dans les langues :
print (Langues[index])
indice -=1 #Diminuer l'index de un à chaque itération
Sortir:
perle
C
PHP
Va
Python

Mais ne pas soustraire un de la longueur de la liste génère l'erreur "list out of range index":

index = (len (Langues)-1)
pour i dans les langues :
print (Langues[index])
indice -=1
Sortir:
IndexError: l'index de la liste est hors plage

Le code ci-dessus génère une erreur d'index car la longueur de la liste est de cinq, et il essaie de commencer à indexer de cinq à zéro, alors que l'index le plus élevé est de quatre. Cela signifie donc que la liste n'a pas de cinquième index (sixième élément).

Obtenir des listes de gestion des créations en Python

Les erreurs de Python sont conviviales et généralement lisibles. Invariablement, cela les rend traçables dans une mesure raisonnable.

Comme vous l'avez appris, il est assez facile de supprimer l'erreur d'index de liste hors plage. Si vous rencontrez cette erreur dans vos futurs programmes, quelle que soit la complexité de la liste, vous pouvez appliquer les concepts expliqués dans cet article pour résoudre le problème.

N'hésitez pas à faire preuve de créativité avec des listes complexes. Vous voudrez peut-être aussi apprendre à trier des listes en Python pendant votre temps libre pour mieux comprendre tout cela.

Comment trier presque n'importe quel type de liste en Python

Les listes contenant plusieurs types de données peuvent rapidement devenir incontrôlables. Voici comment les trier avec Python.

Lire la suite

PartagerTweeterE-mail
Rubriques connexes
  • Programmation
  • Python
  • Programmation
  • Conseils de codage
A propos de l'auteur
Idowu Omisola (136 articles publiés)

Idowu est passionné par tout ce qui concerne les technologies intelligentes et la productivité. Pendant son temps libre, il joue avec le codage et passe à l'échiquier quand il s'ennuie, mais il aime aussi rompre avec la routine de temps en temps. Sa passion pour montrer aux gens le chemin de la technologie moderne le motive à écrire davantage.

Plus de Idowu Omisola

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner