Apprenez en lisant dans l'ordre

Utiliser les tuples Python (tuple)

Apprends à utiliser les tuples en Python pour regrouper plusieurs valeurs immuables et les déballer en une ligne.

Ce qu'est un tuple — la version « non modifiable » de list

Un tuple (tuple) te permet de regrouper plusieurs valeurs dans une seule variable. Il ressemble beaucoup au list vu dans l'article précédent, mais la différence clé, c'est qu'une fois créé, on ne peut plus changer son contenu.

Si une list est un contenant que tu prévois de réécrire (comme une liste de courses), un tuple est un contenant que tu fixes une bonne fois et que tu laisses tranquille — pense à des coordonnées (x, y) ou à une couleur RGB (255, 0, 0).

list vs tuple
list[1, 2, 3]modifiabletuple(1, 2, 3)immuabledéclarerpropriétédéclarerpropriété

Seul le type de parenthèses et la possibilité de modifier diffèrent ; le rôle — regrouper plusieurs valeurs — est le même.

Si ça change, utilise list ; si ça reste fixe, utilise tuple est une règle simple.

Pour en déclarer un, il suffit d'entourer les valeurs de ( et ), séparées par des virgules. Là où une list utilise [ ], un tuple utilise ( ).

Accéder aux éléments (indexation et slicing) fonctionne exactement comme avec une list : [0] pour le premier, [-1] pour le dernier, [1:3] pour une tranche.

# Déclaration d'un tuple
fruits = ("apple", "banana", "lemon")

print(fruits)        # ('apple', 'banana', 'lemon')
print(type(fruits))  # <class 'tuple'>
print(fruits[0])     # apple
print(fruits[-1])    # lemon
print(fruits[1:])    # ('banana', 'lemon')  ← la tranche est aussi un tuple

# Les types mixtes fonctionnent
profile = ("Alice", 28, 165.5)

Un tuple à un seul élément a besoin d'une virgule finale

Si tu écris fruits = ("apple"), c'est une chaîne, pas un tuple. ( ) sert aussi de parenthèses mathématiques, donc Python ne peut pas faire la différence quand il n'y a qu'une seule valeur.

Pour créer un tuple d'un élément, ajoute une virgule finale : ("apple",).

Python te permet aussi d'omettre complètement les parenthèses et d'écrire 1, 2, 3 comme tuple, mais pour la lisibilité, garde les ( ).

Déclare un tuple et récupère des valeurs dedans.

① Crée colors = ("red", "green", "blue") et affiche avec print() la première et la dernière couleur.

② Affiche colors[0:2], puis utilise type() pour confirmer qu'une tranche reste un tuple.

(Si ton code s'exécute correctement, l'explication apparaîtra.)

Éditeur Python

Exécuter le code pour voir le résultat

Immuable — « réécrire un élément » et « changer de boîte » sont deux choses différentes

Un tuple est immuable (non modifiable). Une fois créé, tu ne peux pas écraser, ajouter ou supprimer ses éléments.

Là où beaucoup de gens s'emmêlent, c'est la différence entre « changer un élément » et « mettre un tout nouveau tuple dans la variable ». La première est interdite ; la deuxième est parfaitement OK.

« Réécrire un élément » vs « Changer de boîte »
t = (1,2,3)t[0] = 9TypeErrort = (1,2,3)t = (4,5,6)pointe versnouv. tupleélémentéchecréaffect.OK

t[0] = 9 essaie de modifier directement le contenu, donc c'est une erreur.

t = (4, 5, 6) pointe juste la variable vers un nouveau tuple, donc c'est OK.

Vérifions que réécrire un élément d'un tuple provoque vraiment une erreur.

① Exécute le code ci-dessous tel quel. Tu devrais voir une TypeError.

② Une fois l'erreur vue, commente la ligne my_tuple[0] = 9 (ajoute un # en début de ligne), puis ajoute my_tuple = (9, 2, 3) à la place et affiche my_tuple. Celle-ci ne provoque pas d'erreur.

Éditeur Python

Exécuter le code pour voir le résultat

Concaténation et méthodes (count / index)

Tu peux construire un nouveau tuple en joignant deux tuples. Utiliser + pour concaténer renvoie un tout nouveau tuple.

Il y a peu de méthodes — les deux que tu utiliseras vraiment sont count et index. Elles se comportent comme sur une list.

Ce que tu veux faireComment l'écrirePoint clé
Concaténert1 + t2Renvoie un nouveau tuple ; les originaux ne changent pas
Ajouter un élémentt + (x,)N'oublie pas la virgule finale
Compter des valeurst.count(x)Combien de fois x apparaît
Trouver une positiont.index(x)La première position où x apparaît
fruits = ("apple", "banana", "lemon")

# Concaténer (renvoie un nouveau tuple)
more = fruits + ("grape",)
print(more)            # ('apple', 'banana', 'lemon', 'grape')
print(fruits)          # ('apple', 'banana', 'lemon')  ← l'original est inchangé

# count et index
nums = (1, 2, 2, 3, 2, 4)
print(nums.count(2))   # 3 (il y a trois 2)
print(nums.index(3))   # 3 (3 est le 4e = index 3)

# Conversion entre list et tuple
list_fruits  = list(fruits)   # ['apple', 'banana', 'lemon']
tuple_fruits = tuple(list_fruits)  # ('apple', 'banana', 'lemon')

Si tu veux continuer à modifier, convertis en list

Un tuple sert aux « valeurs qui bougent à peine », donc il est mal adapté quand tu dois ajouter et retirer des éléments souvent. Le motif standard : convertir en list avec list(t) → éditer → reconvertir avec tuple(...) si besoin.

Extrais des informations d'un tuple de jours de la semaine.

days = ("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun") est donné.

① Utilise days.index("Fri") avec print() pour afficher à quelle position se trouve "Fri".

② Crée weekend = ("Sat", "Sun"), puis affiche days + weekend pour voir ce que produit la concaténation (pas de souci si certains éléments apparaissent deux fois).

Éditeur Python

Exécuter le code pour voir le résultat

Dépaquetage et clés de dict — ce que seul un tuple sait faire

Il y a deux choses qu'un tuple sait faire et qu'une list ne sait pas : le dépaquetage et l'utilisation comme clé de dict.

Dépaquetage — casse-le en plusieurs variables d'un coup
coord=(135, 35)lng, lat= coordlng=135lat=35affecterdépaqueter

Mets des noms de variables séparés par des virgules à gauche, et chaque élément du tuple va directement dans sa propre variable.

La correspondance est position par position, et le nombre de variables doit égaler le nombre d'éléments.

# Dépaquetage
coord = (135.0, 35.0)
longitude, latitude = coord
print(longitude)   # 135.0
print(latitude)    # 35.0

# Tu peux aussi dépaqueter depuis un littéral
r, g, b = (255, 128, 0)
print(r, g, b)     # 255 128 0

# Une astuce classique : échanger deux valeurs en une ligne
a, b = 1, 2
a, b = b, a
print(a, b)        # 2 1

La valeur de retour d'une fonction est aussi un tuple (aperçu)

Une fonction Python peut renvoyer plusieurs valeurs avec return a, b, et celles-ci sont automatiquement emballées en tuple. Côté appelant, écrire x, y = func() les dépaquette en deux variables. Le chapitre sur les fonctions vient plus tard, donc on ne creuse pas ici — mais retenir que « plusieurs valeurs de retour et dépaquetage vont ensemble » rendra ce chapitre plus facile.

Dépaquette une couleur RGB.

rgb = (200, 100, 50) est donné.

① Avec le dépaquetage, extrais les valeurs rouge / vert / bleu dans trois variables r, g, b.

② Utilise print() pour afficher r, g, et b sur une ligne chacune.

Éditeur Python

Exécuter le code pour voir le résultat

L'autre atout, c'est qu'un tuple peut servir de clé de dict. Une list ne peut pas être une clé de dict, mais un tuple oui. C'est pratique quand tu veux utiliser une combinaison de plusieurs valeurs comme une seule clé — par exemple, mapper des coordonnées vers un nom de pays.

Un tuple peut être une clé de dict
(135,35)tupleclé dedictOK[135,35]listclé dedictTypeError
# Un dict avec des clés tuple
country = {
    (135.0, 35.0): "Japan",
    (-77.0, 38.9): "USA",
}
print(country[(135.0, 35.0)])   # Japan
print(country.get((0.0, 0.0), "Inconnu"))   # Inconnu

# Une list ne peut pas être une clé
# bad = {[135.0, 35.0]: "Japan"}  # TypeError: unhashable type: 'list'

Construis un dict qui relie des coordonnées à des noms de villes.

① Crée un dict cities où la clé (35.0, 139.0) vaut "Tokyo", et la clé (34.7, 135.5) vaut "Osaka".

② Affiche cities[(35.0, 139.0)] pour vérifier que tu récupères Tokyo.

③ Cherche (0.0, 0.0) avec .get(), en passant "Inconnu" comme deuxième argument, et confirme que ça fonctionne même pour une clé absente.

Éditeur Python

Exécuter le code pour voir le résultat

Dans cet article, autour des différences avec une list, tu as appris comment déclarer un tuple, ce que signifie l'immuabilité, la concaténation et count / index, et le dépaquetage et les clés de dict.

QUIZ

Vérification des connaissances

Répondez à chaque question une par une.

Question 1Laquelle de ces déclarations est une tuple correcte ?

Question 2Soit t = (1, 2, 3), laquelle ne lève pas d'erreur ?

Question 3Pour coord = (135.0, 35.0), quelle est la façon la plus simple d'extraire ses deux valeurs dans les variables lng et lat ?