Aller au contenu

14a Cours Tuples

Les Tuples (ou n-uplets en Français) sont des séquences immuables : on ne peut pas les modifier après leur création.

On les initialise ainsi :

🐍 Script Python
T = ('a', 'b', 'c')
print(T, 'est de type', type(T))
T = 'a', 'b', 'c'  # une autre façon, en ommettant les parenthèses
print(T, 'est de type', type(T))
T = tuple(['a', 'b', 'c'])  # à partir d'une liste
print(T, 'est de type', type(T))
T = ('a')  # ATTENTION, ceci n'est pas un tuple
print(T, 'est de type', type(T))
T = ('a',)  # Syntaxe pour initialiser un tuple contenant un seul élément
print(T, 'est de type', type(T))
T = 'a',  # Syntaxe alternative pour initialiser un tuple contenant un seul élément. Préférez celle avec parenthèses.
print(T, 'est de type', type(T))

Une fois créée, cette séquence ne peut être modifiée.

🐍 Script Python
T = ('a', 'b', 'c')
# On peut utiliser un élément :
print(T[1]) # renvoie 'b'
🐍 Script Python
# mais pas le modifier
T[1] = 'z'  # Cette cellule génère une erreur

Intérêt des tuples par rapport aux listes :

  • plus rapide à parcourir que les listes
  • immuables donc « protégés »
  • peuvent être utilisés comme clé de dictionnaires (cf. plus loin)

On peut créer des tuples à partir d’autres séquences ou objets grâce à la fonction tuple().

🐍 Script Python
a = [1, 2, 3, 'toto']
print(type(a), a)
b = tuple(a)
print(type(b), b)
a = 'azerty'
print(type(a), a)
b = tuple(a)
print(type(b), b)
📋 Texte
<class 'list'> [1, 2, 3, 'toto']
<class 'tuple'> (1, 2, 3, 'toto')
<class 'str'> azerty
<class 'tuple'> ('a', 'z', 'e', 'r', 't', 'y')

Manipulation des tuples⚓︎

On peut construire d’autres tuples par concaténation et multiplication

🐍 Script Python
T1 = 'a', 'b', 'c'
print('T1 =', T1)
T2 = 'd', 'e'
print('T2 =', T2)
print('T1 + T2 =', T1 + T2)
print('T2 * 3 =', T2 * 3)
📋 Texte
T1 = ('a', 'b', 'c')
T2 = ('d', 'e')
T1 + T2 = ('a', 'b', 'c', 'd', 'e')
T2 * 3 = ('d', 'e', 'd', 'e', 'd', 'e')