Tuples en Python

1. Qu’est-ce qu’un tuple ?

Un tuple est une structure de données immuable en Python.

Comme une liste, il peut contenir plusieurs valeurs ordonnées (avec un indice), mais il est impossible de modifier ses éléments après sa création.

🔍 Pourquoi utiliser un tuple ?


2. Déclaration d’un tuple

coord = (3, 4)

Un tuple est créé avec des parenthèses () et des valeurs séparées par des virgules.

t = (1, 2, 3)

💡 Les parenthèses sont facultatives dans certains cas, mais elles améliorent la lisibilité.

t = 1, 2, 3    # aussi un tuple

📌 Cas particulier : tuple avec un seul élément

t = (42,)   # ✅ tuple avec 1 élément
t = (42)    # ❌ ce n’est pas un tuple, juste un int
✅ Ne pas oublier la virgule pour les tuples d’un seul élément ! ⚠️ Généralement on ne fait pas de tuple à une seule valeur !

3. Accès aux éléments

Comme les listes, les tuples sont indexés à partir de 0 :

t = (10, 20, 30)
print(t[0])     # 10
print(t[-1])    # 30 (dernier élément)

Et on peut aussi utiliser les slices :

print(t[1:])    # (20, 30)

4. Les tuples sont immuables

Une fois créé, on ne peut ni modifier, ni ajouter, ni supprimer un élément d’un tuple.

t = (1, 2, 3)
t[0] = 100   # ❌ TypeError : le tuple ne peut pas être modifié

5. Décomposition (ou unpacking)

Python permet de décomposer un tuple en plusieurs variables :

point = (3, 5)
x, y = point
print(x)    # 3
print(y)    # 5

Cela fonctionne aussi avec des tuples plus longs :

triple = (1, 2, 3)
a, b, c = triple

⚠️ Le nombre de variables doit correspondre au nombre d’éléments.


6. Tuples imbriqués et tuples dans les listes

Tuples dans des listes :

liste_points = [(1, 2), (3, 4), (5, 6)]
for x, y in liste_points:
    print("x =", x, "y =", y)

Tuples de listes :

t = ([1, 2], [3, 4])
t[0].append(99)   # ✅ possible, car les listes sont mutables !
print(t)          # ([1, 2, 99], [3, 4])
⚠️ Un tuple peut contenir des objets mutables ! Cela rend le tuple partiellement modifiable indirectement.

7. Fonctions utiles

Fonction / OpérationEffet
len(t)Taille du tuple
x in tVérifie si x est présent
for elem in tParcours du tuple
t.index(x)Donne l’indice de la première occurrence
t.count(x)Compte le nombre d’occurrences de x

8. Utilisation des tuples comme clés de dictionnaire

Les tuples sont hachables (comme les chaînes de caractères), donc peuvent être utilisés comme clés dans un dictionnaire, contrairement aux listes.

d = {}
coord = (1, 2)
d[coord] = "point A"

9. Liste vs Tuple : Quand utiliser quoi ?

SituationUtiliser une listeUtiliser un tuple
Données modifiables✅ Oui❌ Non
Parcours/accès par index✅ Oui✅ Oui
Utilisation comme clé dans un dictionnaire❌ Non✅ Oui
Données fixes (ex. coordonnées, RGB...)❌ Pas idéal✅ Oui

🧠 À bien retenir pour le bac

✅ Les tuples sont immutables : impossible de modifier leur contenu

✅ On peut décomposer un tuple (unpacking)

✅ On peut les utiliser comme clés de dictionnaires

✅ Le type (1,) est un tuple à un seul élément, mais (1) est juste un entier

✅ Un tuple peut contenir des objets mutables comme des listes

✅ Savoir faire la différence entre liste et tuple selon le contexte