list index out of range

Python Erreur courante

Explication

L'erreur `IndexError: list index out of range` survient quand vous accédez à un **indice qui n'existe pas** dans une liste. En Python, les indices vont de `0` à `len(liste) - 1` : sur une liste de 3 éléments, les indices valides sont `0`, `1`, `2` ; `liste[3]` déclenche l'erreur. ```python fruits = ["pomme", "poire", "kiwi"] print(fruits[3]) # le dernier indice valide est 2 # IndexError: list index out of range ```

Causes courantes

- **Confondre longueur et dernier indice** : une liste de 3 éléments n'a pas d'indice `3`. - **Boucle `for i in range(len(liste) + 1)`** : le `+ 1` dépasse. - **Liste plus courte que prévu** (filtrée, vide après traitement). - **Accès `liste[0]` sur une liste potentiellement vide** (résultat de requête, de `split`...). - **Décalage** après une suppression d'éléments pendant l'itération.

1. Vérifiez la longueur avant d'accéder

if len(fruits) > 3:
    print(fruits[3])

2. Itérez sur les éléments, pas sur les indices

La façon idiomatique évite complètement les indices :

for fruit in fruits:        # ✅ pas d'IndexError possible
    print(fruit)

for i, fruit in enumerate(fruits):   # si vous avez besoin de l'indice
    print(i, fruit)

3. Accédez au dernier élément en sécurité

dernier = fruits[-1] if fruits else None   # gère la liste vide

4. En production : gérez la liste vide explicitement

resultats = requete.split(",")
premier = resultats[0] if resultats else ""

Comment prevenir cette erreur

- **Bouclez sur les éléments** (`for x in liste`) ou utilisez `enumerate`, plutôt que `range(len(...))`. - **Testez `if liste:`** avant d'accéder à `liste[0]`. - **N'ajoutez pas `+ 1`** à `range(len(liste))` sans raison. - Référence : [docs.python.org — Séquences](https://docs.python.org/fr/3/tutorial/introduction.html#lists).

Besoin d'aide sur votre projet ?

Besoin d'aide sur un probleme technique ? Decrivez-le pour des recommandations.

Nous contacter

Questions frequentes

Quelle est la différence entre `len(liste)` et le dernier indice ?
Le dernier indice valide est `len(liste) - 1`. Une liste de 5 éléments a une longueur de 5 mais ses indices vont de 0 à 4. C'est la cause numéro un de cette erreur.
Comment accéder au dernier élément sans risque ?
Utilisez `liste[-1]`, mais seulement après avoir vérifié que la liste n'est pas vide : `liste[-1] if liste else None`.
Pourquoi l'erreur apparaît-elle parfois seulement en production ?
Souvent parce que la liste est construite à partir de données réelles (résultat de requête, fichier) qui peuvent être vides ou plus courtes que pendant vos tests. Gérez toujours le cas de la liste vide.

Erreurs similaires

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.