Définition
Si ‘n’ est un nombre entier, alors un n-upplet est une collection de ‘n’ entités : nombres, chaînes de caractères, n-uplet, tableaux…
Si n = 2 : on parle alors d’un doublet (ou paire) ;
Si n = 3 : on parle alors d’un triplet ;
Si n = 4 : on parle alors d’un quadruplet,
Et ainsi de suite.
Tuple dans le langage Python
Dans le langage Python, un n-upplet est appelé ‘tuple’.
Déclaration
Il existe plusieurs instructions qui permettent de déclarer un tuple ‘vide’ :
In [1]: t1 = tuple()
In [2]: t1
Out[2]: ()
In [3]: type(t1)
Out[3]: tuple
In [4]: t2 = ()
In [5]: t2
Out[5]: ()
In [6]: type(t2)
Out[6]: tuple
Attention ! dans les exemples ci-dessus, t1 et t2 ne sont pas des variables mais des objets de type ‘tuple’.
Pour déclarer un tuple contenant des entités, la syntaxe est :
In [8]: t3 = 5, "NSI", 3.14159
In [9]: t3
Out[9]: (5, 'NSI', 3.14159)
In [10]: type(t3)
Out[10]: tuple
Lors de la construction d’un tuple, l’écriture de parenthèses est facultative. Les deux instructions suivantes sont équivalentes :
In [11]: t3 = 5, "NSI", 3.14159
In [12]: t4 = (5, "NSI", 3.14159)
In [13]: t3 == t4
Out[13]: True
En revanche l’écriture des parenthèses est obligatoire lorsqu’un tuple est passé en argument d’une fonction :
x = fonction((5, "NSI", 3.14159))
Accès aux entités d’un tuple
Les entités d’un tuple sont indexées (ou indicées).
L’index est un nombre entier positif ou négatif, écrit entre crochets, le tout écrit après le nom désignant le tuple.
De gauche à droite, les index sont croissants en partant de ‘0’.
De droite à gauche, les index sont décroissants en partant de ‘-1’
In [14]: t3[0]
Out[14]: 5
In [15]: t3[1]
Out[15]: 'NSI'
In [16]: t3[-1]
Out[16]: 3.14159
In [17]: t3[-2]
Out[17]: 'NSI'
Propriétés
Tuple = type non muable (mutable)
Il n’est pas possible de modifier une entité d’un tuple.
In [18]: t3[0] = 8
Traceback (most recent call last):
File "ipykernel_13276/807858443.py", line 1, in <module>
t3[0] = 8
TypeError: 'tuple' object does not support item assignment
Il n’est pas possible de supprimer une entité d’un tuple.
In [19]: del(t3[0])
Traceback (most recent call last):
File "ipykernel_13276/769933271.py", line 1, in <module>
del(t3[0])
TypeError: 'tuple' object doesn't support item deletion