Vous êtes sur la page 1sur 6

14/07/2022 01:56 Corriger l'erreur IndexError: List Index Out of Range - Tutoriel Python

COURS BLOG

Cours gratuits » Cours informatique » Cours programmation » Cours Python » Tutoriel Python

Corriger l'erreur IndexError: List Index Out of Range


Publié le 17 Décembre 2020 par Mouhtat Bilal

RDlero
CorelDRAW DleroC
Nouveau CorelDRAW
Télécharger
Tutoriel Python : maîtriser les listes

Table des matières Tuto Python : Les listes : la méthode


COUNT()
Introduction
Tuto Python : Les listes : la méthode POP()
1. La fonction Index ()
1.1 Indexation « avant » de la liste Tutoriel Python : les instructions de
boucles
1.2 Indexation « arrière » de la liste
Tuto Python : Les listes : la méthode
REMOVE()
2. Que signifie l'erreur index out of range ?
3. Le problème: indexerror: index out of range Tuto python : Mélanger aléatoirement
l'ordre d'une liste (list shuffling)
4. Exemples, scénarios et solutions
4.1.1 Scénario 1 : Listes indexées à partir de 0 Tuto Python : Rechercher un élément
dans une liste
4.1.2 Scénario 2 : Oubli de la fonction range()
Tutoriel Python : Convertir une liste en Set
Conclusion

Introduction
Les indexErrors sont l'un des types d'erreurs d'exécution les plus courants en Python. Ils s
ont déclenchés lorsque vous essayez d'accéder à une valeur d'index dans une liste Pyth
on qui n'existe pas. Dans la plupart des cas, les erreurs d'index sont faciles à résoudre. V
ous avez juste besoin de faire un peu de débogage.

Dans ce tutoriel, nous allons parler de l'erreur "indexerror : list index out of range". Nous al
lons discuter de son fonctionnement et parcourir un exemple de scénarios où cette erre
ur est présente afin de pouvoir la résoudre.

1. La fonction Index ()


https://www.cours-gratuit.com/tutoriel-python/python-indexerror-list-index-out-of-range 1/6
14/07/2022 01:56 Corriger l'erreur IndexError: List Index Out of Range - Tutoriel Python

Index () est une fonction intégrée en Python qui recherche un élément donné depuis le
début de la liste et renvoie l'index le plus bas où l'élément apparaît.

Exemple 

python 
liste = ['a','b','c','d','e']

liste[2]

Résultat d’exécution 
Bootstrap glyphicons Cours Project Liste des
list [Eng] pièces

1.1 Indexation « avant » de la liste


Python prend en charge deux types d'indexation, l'indexation avant et l'indexation arrièr
e. L'index avant commence à 0 et se termine par le nombre d'éléments de la liste. L'inde
x avant est utilisé pour itérer un élément dans le sens direct. L'élément de la liste est imp
rimé dans la même séquence d'index. D’où, la valeur d'index est augmentée jusqu'à la v
aleur d'index suivante.
Bootstrap all class list Excel template packing
list for vacation
Index 0 1 2 3 4

Valeur a b c d e

1.2 Indexation « arrière » de la liste


Python prend en charge l'indexation arrière. L'index arrière commence à -1 et se termine
par la valeur négative du nombre d'éléments de la liste. L'index arrière est utilisé pour ité
rer les éléments dans le sens inverse. Ainsi, l’élément de la liste est imprimé dans l'ordre
inverse de l'index. D’où la valeur d'index est décrémentée pour obtenir la valeur suivant
e. L'index arrière est comme indiqué ci-dessous :
Excel spreadsheet MS PowerPoint
template with drop presentation template
Index -5 -4 -3 -2 -1 down list with check list

Valeur a b c d e

2. Que signifie l'erreur index out of range ?


« Index out of range » signifie que vous fournissez un index pour lequel un élément de list
e n'existe pas. Cette erreur signifie que le code tente d'accéder à une valeur ou à un vec
teur en dehors de ses limites. En python, la liste est modifiable, donc la taille n'est pas fix
e.

Si vous essayez d'attribuer une valeur à un index de liste ou à une position qui n'existe p Excel spreadsheet Cours programmation
as, vous obtiendrez l’erreur suivante : IndexError: list index out of range. template for wedding Lisp : Opérateurs et
guest list fonctions

Les éléments d'une liste python ont des index numériques avec le premier élément aya
nt l'index 0, le second élément avec l'index 1. Le dernier élément de la liste a un index infé
rieur ou égal à la longueur de la liste. Ainsi, si une liste comporte 5 éléments, alors l'index
du dernier élément aura un index 4.

Les valeurs peuvent être affectées à une liste en utilisant cet index ou cette position en
utilisant la syntaxe suivante : liste_nom [index] = valeur.

https://www.cours-gratuit.com/tutoriel-python/python-indexerror-list-index-out-of-range 2/6
14/07/2022 01:56 Corriger l'erreur IndexError: List Index Out of Range - Tutoriel Python

Si vous essayez d'attribuer une valeur à un index supérieur à l'index maximum ou l'index
du dernier élément de la liste, ou longueur de la liste – 1 alors cette erreur sera soulevée.

3. Le problème: indexerror: index out of range


Comme toujours, la meilleure façon de résoudre une erreur  est de lire et décomposer l
e message généré :

python 
indexerror: list index out of range

Ce message d'erreur nous indique que nous essayons d'accéder à une valeur à l'intérie
ur d'un tableau qui n'a pas de position d'index. En Python, les numéros d'index commenc
ent à 0.

Considérons alors une liste Python typique :

Liste = ["Java", "Python", "PHP"]

Cette liste contient trois valeurs. Le premier élément de la liste, Java, possède la valeur
d'index 0. Chaque valeur qui suit a un numéro d'index 1 supérieur au dernier. Par exempl
e, la valeur d'index de Python est 1.

Si nous essayons d'accéder à un élément à la position d'index 3, une erreur sera renvoy
ée. Le dernier élément de notre tableau possède la valeur d'index 2.

4. Exemples, scénarios et solutions


Il existe deux scénarios courants dans lesquels l'erreur « list index out of range » est géné
rée :

·Lorsque vous essayez de parcourir une liste sans considérer le début d’indexation
commençant avec 0.
·Lorsque vous oubliez d'utiliser range () pour parcourir une liste.
Passons en revue ces deux scénarios !

4.1.1 Scénario 1 : Listes indexées à partir de 0


Considérons le programme suivant qui permet d’imprimer toutes les valeurs dans une li
ste appelée « langages_programmation » dans le shell Python :

Syntaxe :

python 
langages_programmation = ["Java", "Python", "PHP"]

count = 0

while count <= len(langages_programmation):

print(langages_programmation[count])

count += 1

Tout d'abord, nous avons déclaré deux variables. La variable «langages_programmatio


n» permet de stocker la liste des langues que nous voulons imprimer sur la console. Deu
xièmement, la variable «count» est utilisée pour suivre le nombre de valeurs que nous a
vons imprimées sur la console.

Nous avons déclaré une boucle while. Cette boucle imprime la valeur de la variable « la
ngages_programmation » à la position d'index stockée dans « count ». Ensuite, il incrém
ente de 1 la variable « count ». Cette boucle se poursuit jusqu'à ce que la valeur de « cou
nt » ne soit plus inférieure ou égale à la longueur de la liste « langages_programmatio
n».

Essayons de voir la sortie de notre code :

Résultat d’exécution :

https://www.cours-gratuit.com/tutoriel-python/python-indexerror-list-index-out-of-range 3/6
14/07/2022 01:56 Corriger l'erreur IndexError: List Index Out of Range - Tutoriel Python

Toutes les valeurs de notre liste sont imprimées sur la console mais une erreur est génér
ée. Le problème est que notre boucle continue à s’exécuter jusqu'à ce que la valeur de «
count » ne soit plus inférieure ou égale à la longueur de la variable « langages_progra
mmation ». Cela signifie que sa dernière itération vérifiera :

python 
langages_programmation[3]

Cette valeur n'existe pas, donc la syntaxe provoque une IndexError. Pour résoudre ce pro
blème, nous pouvons changer notre opérateur de <= à <. Cela garantira que notre liste
ne sera itérée que lorsque la valeur de « count » ne soit plus inférieure à la longueur de «
langages_programmation ». Faisons alors ce changement :

Syntaxe :

python 
langages_programmation = ["Java", "Python", "PHP"]

count = 0

while count <= len(langages_programmation):

print(langages_programmation[count])

count += 1

Résultat d’exécution :

Nous avons résolu l'erreur avec succès ! Notre boucle n'essaye plus d'imprimer des vale
urs relatives à l’instruction langages_programmation [3]. Il s'arrête lorsque la valeur de 
« count » est égale à 3 car le nombre 3 n'est pas inférieur à la longueur de «langages_pr
ogrammation».

4.1.2 Scénario 2 : Oubli de la fonction range()


La fonction range () est utilisée pour générer une séquence de nombres dans le temps.
Dans sa forme la plus simple, elle accepte un entier et renvoie un objet range (un type
d'itérable). En Python 2, la fonction range () renvoie une liste qui n'est pas très efficace p
our gérer des données volumineuses. La syntaxe de la fonction range () est la suivante :

Syntaxe:

python 
range ([start,] stop) -> objet range

Description des paramètres:

·Start (facultatif) : Point de départ de la séquence. Il vaut 0 par défaut.


·Stop (obligatoire) Point final de la séquence. Cet élément ne sera pas inclus dans
la séquence.
Exemple et solution

Lorsque vous parcourez une liste de nombres, il est facile d’oublier l’inclusion de l’instruc
tion range(). Si vous accédez aux éléments de cette liste, une erreur peut se produire. C
onsidérons le code suivant:

Syntaxe:

python 
âges = [11, 12, 22,14]

for âge in âges:

print (âges [âge])

https://www.cours-gratuit.com/tutoriel-python/python-indexerror-list-index-out-of-range 4/6
14/07/2022 01:56 Corriger l'erreur IndexError: List Index Out of Range - Tutoriel Python

Ce code doit imprimer toutes les valeurs de la liste « âges ». Cette liste contient les âges
de personnes aléatoires dans un quartier. Exécutons notre code et voyons le résultat.

Résultat d’exécution :

Une erreur s'affiche. Ajoutons une instruction print() dans notre boucle pour voir la valeu
r de l'âge à chaque itération et identifier la source du problème.

Syntaxe:

python 
âges = [11, 12, 22,14]

for âge in âges:

print(âge)

print (âges [âge])

Résultat d’exécution

Le premier âge, 11 ans, est imprimé sur la console. Cependant, la valeur de « âge » est un
e valeur réelle de « âges ». Ce n’est pas un numéro d’index mais sur la ligne de code "pri
nt (âges [âge])", nous essayons d'accéder à un âge par le biais de son numéro d'index.

Lorsque nous exécutons notre code, il vérifie : âges [11]. La valeur de « âge » est 11 dans la
première itération. Or, il n'y a aucun élément dans notre liste « âges » avec cette valeur.

Pour résoudre ce problème, nous pouvons utiliser une instruction range () pour parcouri
r notre liste d’âges :

Syntaxe :

python 
âges = [11, 12, 22,14]

for âge in range(0, len(âges)):

print(âges[âge])

Résultat d’exécution :

Toutes les valeurs de la liste « âges » sont imprimées sur la console. L'instruction range
() crée une liste de nombres dans une plage particulière. Dans ce cas, la plage [0, 1, 2] e
st créée. Ces nombres peuvent ensuite être utilisés pour accéder aux valeurs « âges » p
ar leur numéro d'index.

Conclusion
Les erreurs d'index se produisent tout le temps. Pour résoudre l'erreur "indexerror : list ind
ex out of range", vous devez vous assurer que vous n'essayez pas d'accéder à un éléme
nt inexistant dans une liste.

https://www.cours-gratuit.com/tutoriel-python/python-indexerror-list-index-out-of-range 5/6
14/07/2022 01:56 Corriger l'erreur IndexError: List Index Out of Range - Tutoriel Python

Si vous utilisez une boucle for pour accéder à un élément, assurez-vous que cette boucl
e tient compte du fait que les listes sont indexées à partir de zéro. Si cela ne résout pas l
e problème, vérifiez que vous utilisez range () pour accéder à chaque élément par sa v
aleur d'index.

Vous êtes maintenant prêt à résoudre l'erreur "indexerror : list index out of range" comm
e un expert Python !

Tutoriel Python

Contactez-nous Accueil Blog

A propos de nous Formations Pro. Cours informatique


Télécharger votre Calendrier
On recrute Cours commerce Cours électricité

Rechercher dans le site Cours finance Cours statistique

Politique de confidentialité Cours économie Cours Management

Droit d'auteur/Copyright Cours comptabilité Cours électronique


Plan du site Cours gestion Cours marketing

Etudes et Metiers Aide à la rédaction

https://www.cours-gratuit.com/tutoriel-python/python-indexerror-list-index-out-of-range 6/6

Vous aimerez peut-être aussi