Un tuple, contrairement à une liste , est une séquence non mutable : on ne peut pas réaffecter ses éléments ou en ajouter. Un tuple est délimité par des parenthèses et ses éléments sont séparés par des virgules.
- mon_tuple = (élément_1, élément_2, élément_3 ,...)
Exemples :
- mes_fruits = ("Pomme","Poire","Banane")
- print(type(mes_fruits))
- '''
- <class 'tuple'>
- '''
- print(mes_fruits)
- '''
- ('Pomme', 'Poire', 'Banane')
- '''
Remarque : bien qu’en théorie il soit possible de construire des tuples composés d’éléments de différents types, dans la pratique il est recommandé d’y stocker une collection d’objets de même type.
Propriétés :
- Les tuples sont des collections ordonnées d’objets, ces objets pouvant être de types différents.
- Les tuples sont non mutables, c’est-à-dire que l’on ne pas peut modifier leur contenu : ils sont généralement utilisés pour stocker des constantes.
- L’accès aux éléments d’un tuple ce fait par un simple appel nom_tuple[indice].
- La numérotation de l’indice commence à partir de zéro.
- On peut utiliser une numérotation négative (comptée à partir du dernier élément du tuple).
Exemples :
- # Appel d'un élément du tuple via un indice positif
- print(mes_fruits[0])
- '''
- Pomme
- '''
- print(mes_fruits[2])
- '''
- Banane
- '''
- # Appel d'un élément du tuple via un indice négatif
- print(mes_fruits[-1])
- '''
- Banane
- '''
- # Longueur du tuple
- print(len(mes_fruits))
- '''
- 3
- '''
- # Tentative de modification d'un élément du tuple via un indice
- mes_fruits[0] = "Raisin"
- '''
- TypeError: 'tuple' object does not support item assignment
- '''
- # Tentative d'extension du tuple
- mes_fruits[3] = "Cerise"
- '''
- TypeError: 'tuple' object does not support item assignment
- '''
- # Tentative de suppression d'un élément du tuple
- del(mes_fruits[0])
- '''
- TypeError: 'tuple' object doesn't support item deletion
- '''
- # Création d'un tuple comportant un seul élément (ne pas oublier la virgule à la fin)
- pi = (3.14,)
- print(type(pi))
- '''
- <class 'tuple'>
- '''
- print(pi)
- '''
- (3.14,)
- '''
Slicing
En Python, la technique de "slicing" permet le découpage de structures de données séquentielles telles que les tuples.
- mes_fruits = ("Pomme","Poire","Banane")
- # Extraction des éléments d'indice 0 inclus à 2 exclu
- print(mes_fruits[0:2])
- '''
- ('Pomme', 'Poire')
- '''
- # Extraction de tous les éléments sauf le dernier
- print(mes_fruits[:-1])
- '''
- ('Pomme', 'Poire')
- '''
- # Extraction des éléments de l'indice 0 inclus à 3 exclu par pas de 2
- print(mes_fruits[0:3:2])
- '''
- ('Pomme', 'Banane')
- '''
Parcourir un tuple
Un boucle for permet de parcourir tous les éléments d’un tuple :
- mes_fruits = ("Pomme","Poire","Banane")
- for element in mes_fruits :
- print(element)
Test d’appartenance
L’opérateur in teste si un élément fait partie d’une liste.
- print("Poire" in mes_fruits)
- '''
- True
- '''
Concaténation de tuples
- tuple1 = ("a", "b" , "c")
- tuple2 = (1, 2, 3)
- tuple3 = tuple1 + tuple2
- print(tuple3)
- '''
- ('a', 'b', 'c', 1, 2, 3)
- '''
Modifier le contenu d’un tuple
Une fois un tuple créé, on ne peut pas modifier ses valeurs. Les tuples sont non mutables Il existe une solution de contournement : on peut convertir le tuple en liste, modifier la liste et reconvertir la liste en tuple.
- mes_fruits = ("Pomme","Poire","Banane")
- fruits = list(mes_fruits)
- fruits[1] = "Kiwi"
- mes_fruits = tuple(fruits)
- print(mes_fruits)
- '''
- ('Pomme', 'Kiwi', 'Banane')
- '''
Partager cette page