W3docs

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]

python— editable, runs on the server

Accéder à un index qui n'existe pas lève une IndexError :

colors = ("red", "green", "blue")
print(colors[5])  # IndexError: tuple index out of range

Indexation 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")
python— editable, runs on the server

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]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)  — reversed

Un 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))  # 5

Cela 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 elderberry

Vé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)  # True

Utilisez 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 0

La 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])    # Python

Opé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 :

python— editable, runs on the server

Répéter des tuples

Utilisez * pour répéter un tuple un nombre donné de fois :

python— editable, runs on the server

Méthodes utiles des tuples

Les tuples disposent de deux méthodes intégrées pour lire des données :

MéthodeCe 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"))  # 1

Pour une référence complète, consultez le chapitre Tuple Methods.

Quand utiliser un tuple plutôt qu'une liste

SituationTupleListe
Les données ne doivent pas changer (coordonnées, valeurs RGB, lignes de base de données)OuiNon
Utilisé comme clé de dictionnaireOuiNon — les listes ne sont pas hachables
Léger avantage en mémoire / vitesse pour les données en lecture seuleOuiNon
Besoin d'ajouter, supprimer ou trierNonOui

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 for et while
  • Update Tuples — solutions pour modifier le contenu d'un tuple
  • Join Tuples — concaténation et technique sum()
  • Tuple Methodscount() et index() en détail
  • Python Lists — l'alternative mutable aux tuples

Pratique

Pratique
What are the ways to access items in a Python tuple?
What are the ways to access items in a Python tuple?
Was this page helpful?