Donc, vous travailliez 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, cela 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'index 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èmeindice.

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 la découper pour imprimer le cinquième élément comme illustré ci-dessous donne une erreur :

imprimerlangues[5]
Sortie:
IndexError : index de la liste hors plage

Dans l'exemple ci-dessus, Python essaie de rechercher le cinquième index dans la liste, et lorsqu'il ne peut pas le trouver, il génère l'erreur d'index de liste. C'est parce que le premier élément Python est sur l'index zéro, tandis que lelast Perl est sur 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.

UTILISER LA VIDÉO DU JOUR

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 pour boucle dans une liste en compréhension:

indexes = [languages.indexi for i in languages]
impressionindex
Sortie:
[0, 1, 2, 3, 4]

L'index d'une liste est la base du découpage en tranches dans la programmation. Ainsi, puisque vous connaissez l'index 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 :

imprimerlangues[4]
Sortie:
Perl

Il affiche maintenant le résultat correct.

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

Outre le régulierPython pour 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, elle est 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 éléments avec un numéro d'index croissant du premier au dernier élément, par exemple :

indice = 0 # Index initial 
pour i dans les langues :
printLangues[index]
indice +=1
Sortie:
Python
Aller
PHP
C
Perl

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

indice = 1 # Index initial 
pour i dans les langues :
printLangues[index]
indice +=1
Sortie:
Aller
PHP
C
Perle
IndexError : index de la liste hors plage

Dans l'exemple ci-dessus, l'indexation commence à partir du deuxième élément index un, Aller.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. Elle génère donc une erreur d'index. Cela signifie que l'index augmente selon le modèle suivant pour chaque élément :

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

Au lieu du motif 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 :
printLangues[index]
indice +=1 #Augmente l'indice de un à chaque itération

Pour appliquer ce concept pour sortir les é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 à 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 :

indice = lenLangues-1
pour i dans les langues :
printLangues[index]
indice -=1 #Diminue l'indice de un à chaque itération
Sortie:
Perle
C
PHP
Aller
Python

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

indice = lenLangues-1
pour i dans les langues :
printLangues[index]
indice -=1
Sortie:
IndexError : index de liste 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 créatives 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.problème.

N'hésitez pas à faire preuve de créativité avec des listes complexes. Vous voudrez peut-être également 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 avec plusieurs types de données peuvent rapidement devenir incontrôlables. Voici comment les trier avec Python.

Lire la suite
À propos de l'auteur