Un tuple, c'est une liste qu'on ne peut pas changer
Les tuples et les listes se ressemblent à première vue — les deux sont des séquences ordonnées, les deux prennent en charge l'indexation et l'itération — mais une différence critique change tout : les tuples sont immuables. Une fois que tu crées un tuple, tu ne peux plus y ajouter, en retirer ou remplacer un élément.
Tu écris les tuples avec des parenthèses (ou parfois sans) :
Un tuple avec un seul élément a besoin d'une virgule finale, sinon Python traite les parenthèses comme un simple groupement :
Et pour les tuples vides, utilise () :
L'immutabilité, en pratique
Essaie de changer un tuple et Python t'arrête :
Tu peux lire un tuple librement — indexation, découpage, itération, in — tu ne peux juste pas le modifier. Si tu as besoin d'un tuple différent, tu en crées un nouveau.
Pourquoi vouloir quelque chose qu'on ne peut pas changer ?
L'immutabilité ressemble à une limitation, mais c'est souvent la fonctionnalité que tu veux.
- Sécurité. Un tuple que tu passes à une fonction ne peut pas être muté dans ton dos.
- Hashabilité. Les tuples de valeurs immuables peuvent être utilisés comme clés de dictionnaire ou membres d'ensemble ; les listes, non.
- Intention. Un tuple dit « c'est un enregistrement de forme fixe ».
point = (3, 4)communique « deux coordonnées » plus clairement quepoint = [3, 4].
Les tuples brillent pour des choses comme :
- Coordonnées :
(x, y),(lat, lon) - Couleurs RGB :
(255, 128, 0) - Enregistrements :
(name, email, signup_date) - Renvoyer plusieurs valeurs depuis une fonction
Déballage
Les tuples et la syntaxe de déballage sont faits l'un pour l'autre :
La virgule à gauche est ce qui fait le déballage. Python voit deux noms et un tuple avec deux valeurs, et il les lie par paires.
C'est partout dans le Python idiomatique :
Tu peux utiliser * pour récupérer « le reste » :
Pratique quand tu te soucies seulement du premier et du dernier élément.
Tuples comme clés de dictionnaire
Parce que les tuples sont hashables (tant que leur contenu l'est), tu peux les utiliser comme clés de dict. Les listes ne peuvent pas faire ça :
Ce motif — clé composée de plusieurs valeurs — est étonnamment utile. Pense : « le score pour l'utilisateur X au jour Y » ou « le meilleur itinéraire de A à B ».
Tuples pour valeurs de retour multiples
Une fonction qui a besoin de retourner plus d'une chose renvoie généralement un tuple :
Le divmod() intégré de Python fait exactement ça. L'affectation par déstructuration du côté appelant rend ça naturel à lire.
Tuples nommés, quand la position ne suffit pas
Dès que tes tuples dépassent deux ou trois éléments, se souvenir quelle position veut dire quoi devient pénible. collections.namedtuple corrige ça :
Maintenant les éléments du tuple ont des noms. C'est toujours immuable, toujours un tuple (donc déballage et indexation marchent), mais le motif d'accès est bien plus sympa. Pour quelque chose de plus complexe, il y a dataclasses — on y reviendra plus tard dans le chapitre sur les classes.
Tuple vs liste : un guide de décision rapide
- Forme fixe, chaque position a un sens → tuple.
- Une collection qui peut grandir ou rétrécir → liste.
- Renvoyer plusieurs valeurs depuis une fonction → tuple.
- Besoin d'une clé de dict ou d'un membre de set → tuple (la liste ne marchera pas).
- Tu vas le muter → liste (le tuple ne te laissera pas faire).
On avance
Les tuples couvrent un bout du spectre : fixe, petit, structuré. Ensuite : les ensembles, qui couvrent un boulot complètement différent — vérification d'appartenance rapide et unicité.
Questions fréquentes
Qu'est-ce qu'un tuple en Python ?
Un tuple est une séquence ordonnée et immuable — comme une liste, mais une fois créé tu ne peux plus ajouter, retirer ou changer ses éléments. Tu écris les tuples avec des parenthèses : point = (3, 4).
Quelle est la différence entre un tuple et une liste ?
Les deux sont des séquences ordonnées. Les listes sont mutables — tu peux les changer après création — alors que les tuples sont immuables. Les tuples sont typiquement utilisés pour de petites collections de valeurs qui vont ensemble comme un seul « enregistrement », comme des coordonnées ou les valeurs de retour multiples d'une fonction.
Quand utiliser un tuple ?
Utilise un tuple quand tu as un enregistrement de taille fixe où chaque position a une signification — coordonnées, couleurs RGB, une ligne de base de données. Utilise aussi les tuples comme clés de dictionnaire ou membres d'ensemble, puisque les listes ne peuvent pas servir là. Pour tout le reste où la collection pourrait grandir ou rétrécir, les listes sont le défaut.