Académique Documents
Professionnel Documents
Culture Documents
1) Définition
Un tuple est une collection d'objets ordonnés et immuables (non modifiable). Les tuples sont des
séquences, tout comme les listes. La principale différence entre les tuples et les listes est que les
tuples ne peuvent pas être modifiés contrairement aux listes. Les tuples utilisent des parenthèses,
tandis que les listes utilisent des crochets.
Créer un tuple est aussi simple que de mettre différentes valeurs séparées par des virgules. En
option, vous pouvez également mettre ces valeurs séparées par des virgules entre parenthèses. Par
exemple :
>>> tup1 = ('girafe', 'tigre', 'singe', 'souris')
>>> tup1
('girafe', 'tigre', 'singe', 'souris')
>>> tup2 = (1, 2, 3, 4, "c", "d" )
>>> tup2
(1, 2, 3, 4, 'c', 'd')
>>> tup3 = "a", "b", "c", "d"
>>> tup3
('a', 'b', 'c', 'd')
Le tuple vide est écrit comme deux parenthèses ne contenant rien.
>>> tup1 = ()
>>> tup1
()
>>> type(tup1)
<class 'tuple'>
Pour écrire un tuple contenant une seule valeur, vous devez inclure une virgule, même s'il n'y a
qu'une seule valeur :
>>> tup1 = (5)
>>> tup1
5
>>> type(tup1)
<class 'int'>
>>> tup1 = (5,)
>>> tup1
(5,)
>>> type(tup1)
<class 'tuple'>
2) Utilisation et indexage
Pour accéder aux valeurs dans un tuple, utilisez les crochets [] pour le découpage avec l'index ou
les indices pour obtenir la valeur disponible à cet index.
a) Indexage positif
Les indices d'un tuple de n éléments commence à 0 et se termine à n-1. Voyez l'exemple suivant:
>>> animaux = ('girafe','tigre','singe','souris')
>>> animaux[0]
'girafe'
>>> animaux[3]
'souris'
Par conséquent, si on appelle l'élément d'indice 4 de notre liste, Python renverra un message
d'erreur :
>>> animaux[4]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: tuple index out of range
b) Indexage négatif
Un tuple peut également être indexée avec des nombres négatifs.
Les indices négatifs reviennent à compter à partir de la fin. On peut accéder au dernier élément à
l'aide de l'indice -1. L'avant-dernier élément a lui l'indice -2, ... etc.
>>> animaux = ('girafe','tigre','singe','souris')
>>> animaux[-1]
'souris'
>>> animaux[-2]
'singe'
3) Tuples de tuples
Il est tout à fait possible de construire des tuples de tuples. Cette fonctionnalité peut parfois être
très pratique. Par exemple :
Si on veut récupérer tous les éléments, de l'élément m inclus à l'élément n+1 exclu), on pourra
utilise le modèle Nom_Tuple [m:n+1]. On dit alors qu'on récupère une tranche du tuple, par
exemple :
>>> animaux = ('girafe', 'tigre', 'singe', 'souris')
>>> animaux[0:2]
('girafe', 'tigre')
>>> animaux[0:3]
('girafe', 'tigre', 'singe')
>>> animaux[2:]
('singe', 'souris')
>>> animaux[:]
('girafe', 'tigre', 'singe', 'souris')
>>> animaux[1:-1]
('tigre', 'singe')
Notez que lorsqu'aucun indice n'est indiqué à gauche ou à droite du symbole deux-points, Python
prend par défaut tous les éléments depuis le début ou tous les éléments jusqu'à la fin
respectivement.
On peut aussi préciser le pas en ajoutant un symbole deux-points supplémentaire et en indiquant
le pas par un entier.
>>> animaux = ('girafe', 'tigre', 'singe', 'souris')
>>> animaux[0:3:2]
('girafe', 'singe')
>>> x = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
>>> x
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
>>> x[::2]
(0, 2, 4, 6, 8)
>>> x[::3]
(0, 3, 6, 9)
>>> x[1:6:3]
(1, 4)
(1, 2, 3)
>>> x[2]
3
>>> x[2] = 15
Traceback (innermost last):
File "<stdin>", line 1, in ?
TypeError: object doesn't support item assignment
Si vous voulez ajouter un élément (ou le modifier), vous devez créer un autre tuple :
>>> x = (1, 2, 3)
>>> y = x + (2,)
>>> y
(1, 2, 3, 2)
De même, si vous tentez de supprimer un élément d’un tuple en utilisant l'instruction del , Python
vous renvoie un message d'erreur.
>>> x = (1, 2, 3)
>>> del x[1]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion
>>> tuple1 = ( 4, 5, 2, 7, 2, 6, 2)
>>> tuple1.count(2)
3
>>> tuple1.count(7)
1
La méthode tuple.index (x[, start[, end]]) : Renvoie la position du premier élément du tuple
dont la valeur égale x (en commençant à compter les positions à partir de zéro). Une
exception ValueError est levée si aucun élément n'est trouvé.
Les arguments optionnels start et end sont interprétés de la même manière que dans la notation
des tranches et sont utilisés pour limiter la recherche à une sous-séquence particulière.
>>> tuple1 = ( 4, 5, 2, 7, 2, 6, 2)
>>> tuple1.index(2)
2
>>> tuple1.index(2, 3, 6)
4
>>> tuple1.index(8)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: tuple.index(x): x not in tuple