Logo de kxs.frCours d'informatique pour le lycée et la prépa

Tuples

Jusqu’à présent nous avons utilisé des éléments de type basique comme les entiers, le chaînes de caractère ou les flottants. Il existe dans la plupart des langages de programmation des éléments de type construits (ou composites). Nous commençons ici par ce qu’on appelle les tuples en Python.

Définition

Un tuple est une séquence non modifiable d’éléments. Un tuple est représenté en Python par une suite d’éléments séparés par des virgules. On met généralement des parenthèses autour des tuples (pour la lisibilité) mais ce n’est pas indispensable. Les instructions suivantes créent des tuples :

>>> (1, 9, 5, 3, 7)
>>> 5, 8, 6, 36
>>> ("a", "g", "toto")
>>> (58, "a", 3.56, "hoho")

Comme on peut le voir, un tuple peut contenir des éléments de types différents. Il est possible de créer un tuple vide :

>>> un_tuple_vide = ()

On peut également créer un tuple avec un seul élément (cela pourra être utile) :

>>> un_tuple_simple = (3,)

Manipulation

Accéder à un éléments

On utilise la notation entre crochets pour accéder à un élément d’un tuple. Le premier élément possède l’indice 0, le deuxième l’indice 1…

1) Tester et noter le résultat des instructions suivantes dans le shell :

>>> un_tuple = ("a", "g", "toto", "tu")
>>> un_tuple[2]

2) Que faut-il mettre dans les pointillés pour obtenir ‘a’ ?

>>> un_tuple = ("a", "g", "toto", "tu")
>>> un_tuple[…]

Attention ! On ne peut pas modifier un tuple !

3) Que renvoient les instructions ci-dessous ?

>>> un_tuple = ("a", "g", "toto", "tu")
>>> un_tuple[1] = "b"

Il pourra être intéressant d’accéder aux éléments d’un tuple à partir de la fin. Pour cela, on utilisera des indices négatifs : -1 pour le dernier élément, -2 pour l’avant dernier…

4) Que renvoient les instructions suivantes ?

>>> un_tuple = ("a", "g", "toto", "tu")
>>> un_tuple[-3]

Il est possible de créer des tuples de tuples. Pour accéder aux éléments, on utilise alors deux crochets. Le premier crochet pour choisir le tuple puis le second pour choisir l'élément dans ce tuple.

5) Essayer les instructions suivantes :

>>> tuple_de_tuple = ((3, 6, 7), ("mimi", "momo", "mumu", "mama"), "tata", 95)
>>> tuple_de_tuple[0][1]

6) Que faut-il écrire pour obtenir l’élément "mumu" à partir du tuple_de_tuple précédent ?

Si on essaie d'accéder à un élément qui n'existe pas, cela générera une erreur :

7) Essayer les instructions suivantes :

>>> un_tuple = ("a", "g", "toto", "tu")
>>> un_tuple[4]
>>> un_tuple[-5]

Nombre d’éléments

Pour avoir le nombre d’éléments d’un tuple, on utilise toujours la fonction len().

8) Que renvoient les instructions suivantes ?

>>> un_tuple = ("a", "g", "toto", "tu")
>>> len(un_tuple)

Fragment de tuple (slice, pas au programme mais très utile !)

Pour extraire une partie d’un tuple, on met entre crochets l’indice du début et l’indice de fin de la tranche que l’on souhaite extraire. On les sépare par « : ». Attention le dernier indice est exclu de l’extraction !

9) Que renvoient les instructions suivantes ?

>>> un_tuple = ("a", "g", "toto", "tu")
>>> un_tuple[1:3]

Opérations

Il est possible de concaténer des tuples avec l’opérateur « + ». Concaténer signifie mettre bout à bout.

10) Quel est le résultat des instructions ci-dessous ?

>>> tuple1 = ("a", "b", "c")
>>> tuple2 = ("d", "e", "f")
>>> tuple1 + tuple2

On peut répéter un tuple en le multipliant par un entier.

11) Noter le résultat des opérations suivantes :

>>> tuple1 = ("a", "b", "c")
>>> tuple1 * 3

Appartenance

On teste l’appartenance à un tuple avec l’instruction in.

12) Noter les résultats des instructions ci-dessous :

>>> un_tuple = ("a", "g", "toto", "tu")
>>> "a" in un_tuple
>>> un_tuple = ("a", "g", "toto", "tu")
>>> 5 in un_tuple

Parcours

Pour parcourir un tuple, on peut utiliser l’instruction for … in … : ….

13) Tester et donner la sortie du script suivant :

mon_tuple = ("souris", "chat", "chien", "tortue")
for animal in mon_tuple:
    print(animal)

14) Reprenez le tuple précédent et parcourez-le avec une boucle while.