tuple index out of range
Python
Erreur courante
Explication
L'erreur `IndexError: tuple index out of range` survient quand vous accédez à un **indice qui n'existe pas** dans un tuple. Comme pour les listes, les indices valides vont de `0` à `len(tuple) - 1`.
```python
coords = (1, 2)
print(coords[2]) # indices valides : 0 et 1
# IndexError: tuple index out of range
```
Causes courantes
- **Indice supérieur** à `len(tuple) - 1`. - **Tuple vide** suivi d'un accès `tuple[0]`. - **Groupes d'expression régulière** : `m.groups()[2]` quand il n'y a que 2 groupes. - **Structure de données plus courte** que prévu.
1. Vérifiez la longueur avant d'accéder
if len(coords) > 2:
print(coords[2])
2. Dépaquetez plutôt que d'indexer
x, y = coords # ✅ explicite, lève une erreur claire si la forme change
3. Accès sûr au dernier élément
dernier = coords[-1] if coords else None
Comment prevenir cette erreur
- **Dépaquetez** les tuples de forme connue (`x, y = point`) plutôt que d'indexer.
- **Validez la longueur** des tuples issus de parsing ou de regex.
- Référence : [docs.python.org — Tuples](https://docs.python.org/fr/3/tutorial/datastructures.html#tuples-and-sequences).
Besoin d'aide sur votre projet ?
Besoin d'aide sur un probleme technique ? Decrivez-le pour des recommandations.
Nous contacterQuestions frequentes
Pourquoi mon `re` lève-t-il cette erreur sur `.groups()` ?
Parce que vous accédez à un groupe inexistant : `m.groups()` ne contient que les groupes capturants `( )` réellement définis dans le motif. Comptez vos parenthèses ou utilisez des groupes nommés.
Puis-je modifier un élément du tuple pour éviter l'erreur ?
Non, les tuples sont immuables. Si vous avez besoin de modifier la structure, utilisez une liste, ou reconstruisez un nouveau tuple.