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 ?
- Pour représenter des données fixes qui ne doivent pas changer : coordonnées, dates, constantes, etc.
- Pour garantir l’intégrité des données (pas de risque de modification accidentelle).
- Pour les utiliser comme clés de dictionnaire (seulement les objets immuables peuvent être des clés).
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) # 5Cela 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ération | Effet |
len(t) | Taille du tuple |
x in t | Vérifie si x est présent |
for elem in t | Parcours 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 ?
| Situation | Utiliser une liste | Utiliser 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