Apprentissage du langage Python

Les tuples

Généralités

Les tuples sont des séquences d'éléments itérables et non modifiables.

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')
t3 = (5, "Janvier", 12, [2, 9.5])  #Les tuples peuvent contenir des éléments de tout type, y compris des tuples et des listes !

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 *

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.

Lecture d'un tuple

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'

Récupération d'une portion de tuple

Pour extraire une partie d'une variable tpl de type tuple, on procède de l'une des façons suivantes :

tpl[i:j] Renvoie la portion de tpl du iième (compris) au jieme élément (non compris).
tpl[:j] Renvoie la portion de tpl du premier au jième élément (non compris).
tpl[i:] Renvoie la portion de tpl du iième élément (compris) au dernier.

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.

Parcours d'un tuple avec for ... in

Utilisation de for pour parcourir les valeurs

Exemple : affichage des 10 premiers carré

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