logo oujood
🔍

Les tuples en Python

Un tuple est une collection ordonnée et immuable : une fois créé, son contenu ne peut plus être modifié. C'est le type à privilégier quand les données ne doivent pas changer.

OUJOOD.COM

Qu'est-ce qu'un tuple ?

Un tuple sert à stocker plusieurs éléments dans une seule variable, comme une liste. La différence clé : un tuple est immuable — on ne peut pas modifier, ajouter ou supprimer ses éléments après sa création. On l'écrit avec des parenthèses.

  📋 Copier le code

# Créer un tuple avec des parenthèses
matuple = ("cahier", "livre", "stylo")
print(matuple)
print(type(matuple))  # <class 'tuple'>

Propriétés d'un tuple

Les éléments d'un tuple sont ordonnés (leur position est fixe), immuables (on ne peut pas les modifier après création) et ils autorisent les doublons puisque chaque élément est identifié par son index.

  📋 Copier le code

# Les tuples autorisent les valeurs dupliquées
matuple = ("cahier", "livre", "stylo", "cahier", "règle", "livre")
print(matuple)
print("Ce tuple contient " + str(len(matuple)) + " éléments")

Tuple à un seul élément

Pour créer un tuple contenant un seul élément, il faut ajouter une virgule après la valeur. Sans cette virgule, Python interprète les parenthèses comme un simple regroupement d'expression, pas comme un tuple.

  📋 Copier le code

# La virgule est obligatoire pour un tuple à un seul élément
matuple = ("cahier",)
print(type(matuple))  # <class 'tuple'>
# Sans virgule : Python voit une chaîne entre parenthèses, pas un tuple
pas_un_tuple = ("cahier")
print(type(pas_un_tuple))  # <class 'str'>

Types de données dans un tuple

Un tuple peut contenir des éléments de n'importe quel type, et même mélanger les types au sein d'un même tuple.

  📋 Copier le code

# Tuples homogènes
matuple1 = ("cahier", "livre", "stylo")
matuple2 = (1, 2, 3, 4, 5)
matuple3 = (True, False)
# Tuple mixte : chaînes, entiers et booléens
matuple = ("cahier", 102, "livre", False, 12, "règle", True)
print(matuple)

Créer un tuple avec le constructeur tuple()

On peut aussi créer un tuple avec la fonction tuple(). On lui passe un itérable entre parenthèses (double parenthèses au total : une pour la fonction, une pour le tuple).

  📋 Copier le code

# Création via le constructeur tuple()
matuple = tuple(("cahier", "livre", "stylo", "règle"))
print(matuple)

Accéder aux éléments

On accède aux éléments d'un tuple via leur index entre crochets. L'index commence à 0. Les index négatifs comptent depuis la fin : -1 désigne le dernier élément.

  📋 Copier le code

matuple = ("cahier", "livre", "stylo", "règle")
print(matuple[2])   # stylo (index 2)
print(matuple[-1])  # règle (dernier élément)

Extraire une plage d'éléments (slicing)

Comme pour les listes, on peut extraire une portion d'un tuple avec la syntaxe tuple[debut:fin]. La borne de fin est exclue.

  📋 Copier le code

matuple = ("cahier", "livre", "stylo", "cahier", "règle", "livre")
# Du 3e au 5e élément (index 2 inclus, index 5 exclu)
print(matuple[2:5])
# Depuis le début jusqu'à l'index 4 (exclu)
print(matuple[:4])
# Depuis l'index 2 jusqu'à la fin
print(matuple[2:])
# Index négatifs : de -4 inclus à -1 exclu
print(matuple[-4:-1])

Vérifier la présence d'un élément

L'opérateur in vérifie si une valeur est présente dans un tuple.

  📋 Copier le code

matuple = ("cahier", "livre", "stylo", "cahier", "règle", "livre")
if "règle" in matuple:
    print("'règle' est dans le tuple")

Modifier un tuple : contournement via liste

Un tuple est immuable : on ne peut pas modifier ses valeurs directement. La solution courante consiste à le convertir en liste, effectuer les modifications, puis reconvertir en tuple.

  📋 Copier le code

matuple = ("cahier", "livre", "stylo", "cahier", "règle", "livre")
# Convertir en liste, modifier, reconvertir en tuple
y = list(matuple)
y[1] = "cartable"
matuple = tuple(y)
print(matuple)

Ajouter des éléments

Les tuples n'ont pas de méthode append(). Pour ajouter un élément, on peut convertir en liste ou concaténer deux tuples avec +=.

  📋 Copier le code

matuple = ("cahier", "livre", "stylo", "règle")
# Ajouter un élément en concaténant un tuple à un élément
y = ("cartable",)  # Virgule obligatoire pour que ce soit un tuple
matuple += y
print(matuple)

Supprimer un tuple

On ne peut pas supprimer un élément précis d'un tuple (même contournement via liste). En revanche, del supprime le tuple entier.

  📋 Copier le code

matuple = ("cahier", "livre", "stylo", "règle")
del matuple
# print(matuple) provoquerait une erreur : le tuple n'existe plus

Déballer un tuple

Le déballage (unpacking) consiste à extraire les valeurs d'un tuple directement dans des variables séparées. Le nombre de variables doit correspondre au nombre d'éléments, sauf si on utilise l'astérisque * pour regrouper le reste.

  📋 Copier le code

matuple = ("stylo", "cahier", "cartable", 12)
# Déballage classique : autant de variables que d'éléments
(outil, papier, sac, nombre) = matuple
print(outil)   # stylo
print(nombre)  # 12
# Avec * : les éléments restants vont dans une liste
matuple2 = ("stylo", "cahier", "cartable", 12, 25)
(outil, papier, *reste) = matuple2
print(reste)        # ['cartable', 12, 25]
print(type(reste))  # <class 'list'>

Parcourir un tuple

On parcourt un tuple avec une boucle for, via les index avec range(len()), ou avec une boucle while.

  📋 Copier le code

matuple = ("stylo", "cahier", "cartable", 12, 25)
# Parcours direct
for x in matuple:
    print(x)
# Parcours par index
for i in range(len(matuple)):
    print(matuple[i])
# Parcours avec while
i = 0
while i < len(matuple):
    print(matuple[i])
    i = i + 1

Fusionner et multiplier des tuples

L'opérateur + concatène deux tuples en un nouveau. L'opérateur * répète le contenu d'un tuple un nombre de fois donné.

  📋 Copier le code

matuple1 = ("stylo", "cahier", "cartable")
matuple2 = (12, 25, 36)
# Concaténation
matuple = matuple1 + matuple2
print(matuple)
# Répétition
matuple3 = matuple1 * 2
print(matuple3)

Par carabde | Mis à jour le 24 avril 2026