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