Tuples
De façon plus précise, nous pouvons définir une séquence comme un ensemble fini et ordonné d'éléments.
Il existe deux types de séquences en Python : les tuples et les listes.
Les tuples
En mathématiques, on appelle uplets des "collections ordonnées d'objets". Plus précisément, on appellera n-uple ou n-uplet une collection contenant n objets. Vous trouverez davantage d'informations sur la page Uplet - Wikipedia.
Le terme courant en programmation est l'anglicisme correspondant, le tuple.
- les éléments d'un tuple sont placés entre parenthèses:
(val1, val2, val3)
- les tuples sont ordonnés, chaque élément est associé à un indice
- les tuples ne sont pas modifiables
- les éléments d'un tuple peuvent être de types différents: on peut combiner chaînes de caractères, entiers, objets, dans le même tuple.
Commençons par un exemple simple :
premier_tuple = (1, 9, 42, 13, 24)
Ainsi, dans la variable premier_tuple
, on a :
- la valeur 1 en position 0
- la valeur 9 en position 1
- la valeur 42 en position 2
- la valeur 13 en position 3
- la valeur 24 en position 4
Pour accéder à ces valeurs, on utilise une notation à base de crochets. Le code ci-dessous permet d'analyser chaque élément du tuple. On remarque que l'on peut sans problème faire cohabiter différents types natifs entre eux au sein d'un même tuple.
mon_tuple = (42, "chat", 12, True)
print(type(mon_tuple), ":", mon_tuple)
print(type(mon_tuple[0]), ":", mon_tuple[0])
print(type(mon_tuple[1]), ":", mon_tuple[1])
print(type(mon_tuple[2]), ":", mon_tuple[2])
print(type(mon_tuple[3]), ":", mon_tuple[3])
Reprenons par exemple notre fonction addition()
. Nous pouvons la modifier afin qu'au lieu de renvoyer la somme des deux valeurs, elle renvoie un tuple contenant la valeur a, la valeur b, et enfin la somme des deux. Ainsi, nous conservons toute l'information : nous connaissons la somme des deux valeurs, mais nous pouvons également retrouver comment elle a été calculée.
def addition(int_a, int_b):
if type(int_a) == type(int_b) == type(1):
return (int_a, int_b, int_a + int_b)
else:
return "ERREUR DE TYPE"
print(addition(12, 8))
mon_tuple = (1, 2, 3)
# Essayer de modifier un élément lève une erreur
mon_tuple[1] = 4 # Cela génère une erreur