Tuples Python : Vue d'ensemble
Apprenez à accéder aux éléments d'un tuple Python par indexation positive, négative, découpage et accès imbriqué, avec des exemples exécutables.
Cette page explique comment lire des données à partir d'un tuple Python. Vous apprendrez l'indexation positive, l'indexation négative, le découpage, l'accès aux tuples imbriqués, l'opérateur in et la fonction intégrée len(). Vous verrez également quand les tuples constituent le meilleur choix par rapport aux listes.
Qu'est-ce qu'un tuple ?
Un tuple est une séquence de valeurs ordonnée et immuable. « Ordonnée » signifie que chaque élément a une position fixe accessible par un index. « Immuable » signifie que vous ne pouvez pas modifier, ajouter ou supprimer des éléments après la création — c'est ce qui rend les tuples utiles lorsque l'intégrité des données est importante.
# Create a tuple with parentheses
colors = ("red", "green", "blue")
# The built-in tuple() function works too
digits = tuple([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])Pour tout ce que vous pouvez faire lors de la création d'un tuple, consultez le chapitre Python Tuples.
Accéder aux éléments par index
Comme les listes, les tuples utilisent une indexation à base zéro : le premier élément se trouve à l'index 0, le deuxième à 1, et ainsi de suite.
Index: 0 1 2
| | |
colors = ("red", "green", "blue")Syntaxe : tuple_name[index]
Accéder à un index qui n'existe pas lève une IndexError :
colors = ("red", "green", "blue")
print(colors[5]) # IndexError: tuple index out of rangeIndexation négative
Python vous permet de compter à partir de la fin du tuple en utilisant des nombres négatifs. L'index -1 correspond au dernier élément, -2 à l'avant-dernier, et ainsi de suite.
Index: 0 1 2
Neg idx: -3 -2 -1
| | |
colors = ("red", "green", "blue")L'indexation négative est particulièrement pratique lorsque vous avez besoin du dernier élément sans avoir à appeler len().
Découper un tuple
Un découpage extrait un sous-tuple. La syntaxe est tuple_name[start:stop] où start est inclusif et stop est exclusif.
fruits = ("apple", "banana", "cherry", "date", "elderberry")
print(fruits[1:3]) # ('banana', 'cherry') — index 1 up to (not including) 3
print(fruits[:3]) # ('apple', 'banana', 'cherry') — from beginning to index 3
print(fruits[2:]) # ('cherry', 'date', 'elderberry') — from index 2 to end
print(fruits[:]) # entire tuple (useful for shallow copy)Vous pouvez ajouter une valeur de pas comme troisième argument : tuple_name[start:stop:step].
numbers = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
print(numbers[::2]) # (0, 2, 4, 6, 8) — every second element
print(numbers[::-1]) # (9, 8, 7, 6, 5, 4, 3, 2, 1, 0) — reversedUn découpage retourne toujours un nouveau tuple — l'original n'est jamais modifié.
Obtenir la longueur avec len()
len() retourne le nombre d'éléments dans un tuple.
fruits = ("apple", "banana", "cherry", "date", "elderberry")
print(len(fruits)) # 5Cela est utile pour se prémunir contre les IndexError ou pour itérer avec un range() :
for i in range(len(fruits)):
print(i, fruits[i])
# 0 apple
# 1 banana
# 2 cherry
# 3 date
# 4 elderberryVérifier l'appartenance avec in
L'opérateur in teste si une valeur existe dans un tuple, en retournant True ou False.
fruits = ("apple", "banana", "cherry")
print("banana" in fruits) # True
print("mango" in fruits) # False
print("mango" not in fruits) # TrueUtilisez in plutôt que de capturer une exception lorsque vous avez simplement besoin de savoir si une valeur est présente.
Accéder aux tuples imbriqués
Les tuples peuvent contenir d'autres tuples. Pour atteindre un élément à l'intérieur d'un tuple imbriqué, chaînez les crochets d'index.
matrix = ((1, 2), (3, 4), (5, 6))
print(matrix[0]) # (1, 2)
print(matrix[0][1]) # 2 — row 0, column 1
print(matrix[2][0]) # 5 — row 2, column 0La même technique fonctionne pour les imbrications mixtes, comme un tuple de chaînes et de nombres :
record = ("Alice", 30, ("Python", "SQL"))
print(record[0]) # Alice
print(record[2]) # ('Python', 'SQL')
print(record[2][0]) # PythonOpérations sur les tuples
Bien que vous ne puissiez pas modifier un tuple, vous pouvez combiner des tuples pour en produire de nouveaux.
Concaténer des tuples
Utilisez + pour joindre deux tuples ou plus :
Répéter des tuples
Utilisez * pour répéter un tuple un nombre donné de fois :
Méthodes utiles des tuples
Les tuples disposent de deux méthodes intégrées pour lire des données :
| Méthode | Ce qu'elle retourne |
|---|---|
tuple.count(value) | Nombre de fois que value apparaît dans le tuple |
tuple.index(value) | Index de la première occurrence de value |
colors = ("red", "green", "blue", "red", "red")
print(colors.count("red")) # 3
print(colors.index("green")) # 1Pour une référence complète, consultez le chapitre Tuple Methods.
Quand utiliser un tuple plutôt qu'une liste
| Situation | Tuple | Liste |
|---|---|---|
| Les données ne doivent pas changer (coordonnées, valeurs RGB, lignes de base de données) | Oui | Non |
| Utilisé comme clé de dictionnaire | Oui | Non — les listes ne sont pas hachables |
| Léger avantage en mémoire / vitesse pour les données en lecture seule | Oui | Non |
| Besoin d'ajouter, supprimer ou trier | Non | Oui |
Si vous avez besoin de modifier un tuple, consultez Update Tuples pour la solution courante consistant à convertir en liste puis en retour.
Sujets connexes
- Python Tuples — création de tuples, tuples à un seul élément, constructeur
tuple() - Unpack Tuples — assigner des éléments de tuple à des variables en une seule ligne
- Loop Tuples — itérer sur un tuple avec
foretwhile - Update Tuples — solutions pour modifier le contenu d'un tuple
- Join Tuples — concaténation et technique
sum() - Tuple Methods —
count()etindex()en détail - Python Lists — l'alternative mutable aux tuples