Mémo : Les tuples

Les tuples sont des séquences : ils sont ordonnés et itérables.

Les tuples sont immuables : ils ne peuvent pas être modifiées une fois créés.

Les tuples sont hétérogènes : ils peuvent contenir tous les types d'objets.

Généralités

Création d'un tuple

Il est préférable d'écrire les tuples avec des parenthèses (même si cela n'est pas obligatoire).

t1 = (12, 8, -9, 9.5, 3)
t2 = ('a', 'b', 'c', 'd')

Remarque : il faut toujours au moins une virgule pour définir un tuple. Par exemple : tuple = (1, )

Récupération de la longueur d'un tuple

La longueur d'un tuple peut être récupérée à l'aide de la fonction len(tuple).

Les opérateur + et * appliqués aux tuples

t1 + t2 Renvoie un tuple qui contient les éléments de t1 avec à la suite ceux de t2.
t1 * n ou n * t1 Renvoie un tuple qui contient de façon répétée n fois les éléments de t1.

Récupération d'un élément d'un tuple

Pour récupérer l'un des éléments d'une variable tpl de type tuple, on procède de l'une des façons suivantes :

tpl[i] avec i ≥ 0 Renvoie le iième élément de tpl en partant du début, le premier élément ayant la position 0.
tpl[i] avec i < 0 Renvoie le iième élément de tpl en partant de la fin, le dernier élément ayant la position -1.

Exemple :

tpl = ('a', 'b', 'c', 'd')
elt1 = tpl[1]  #La variable elt1 contient maintenant 'b'
elt2 = tpl[-2]  #La variable elt2 contient 'c'

Parcours d'un tuple avec for ... in

Utilisation de for pour parcourir les valeurs

Exemple : affichage des 10 premières puissances de 2

tpl = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
for elt in tpl:   #elt est une variable qui prend successivement les valeurs du tuple
    print(elt, "^2"," = ", elt**2, sep="")

Utilisation de for pour parcourir les positions

Exemple : affichage d'une lettre sur deux de l'alphabet

tpl = ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q","r", "s")
for i in range(len(tpl)):   #i est une variable qui prend successivement les valeurs des positions
    if i % 2 == 0:
        print(tpl[i], end="")

Condition d'appartenance d'un élément à un tuple

Les conditions (utilisable avec if ou while) d'appartenance et de non-appartenance d'un objet à un tuple sont : in et not in.

Exemple :

tpl = ("a", "e", "i", "o", "u", "y")
caract = "b"
if caract in tpl:
    print(caract, "est une voyelle")
if caract not in tpl:
    print(caract, "n'est pas une voyelle")

Utilisation des tuples pour les affectations mutiples

Les tuples peuvent être utilisés pour affecter simultanément plusieurs valeurs à plusieurs variables.

Exemple : affectation multiple

a, b = 4, 5   # a contient 4 et b contient 5

Exemple : interversion des contenus de deux variables

a, b = 4, 5
a, b = b, a   # cette ligne intervertit les valeurs de a et b

Remarque : dans les exemples ci-dessus, les parenthèses n'ont pas été utilisées, mais c'est bien avec des tuples que le programme travaille.

Utilisation des tuples pour permettre à une fonction de renvoyer plusieurs valeurs.

Exemple :

def double_et_triple(a):
    return a*2, a*3

a, b = double_et_triple(5)   # a contient 10 et b contient 15

Autres opérations sur un tuple

Les fonctions de recherche dans un tuple

tpl.index(x) Renvoie l'indice de la première occurrence de x dans tpl ou une erreur si x n'est pas dans tpl.
tpl.count(x) Renvoie le nombre d'occurrence de x dans tpl.

Quelques fonctions du module random pour les tuples

Pour pouvoir utiliser les fonctions suivantes, le module random doit être importé :

from random import *
choice(tpl) Renvoie un élément de tpl pris aléatoirement.
sample(tpl, n) Renvoie une liste contenant n éléments de tpl pris aléatoirement.