N.S.I. WorkSpace P-Th-B,Première B.1 – Le type n-upplet

B.1 – Le type n-upplet

Categories:

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