W3docs

Accéder aux éléments d'une liste en Python

Apprenez à accéder aux éléments d'une liste Python avec l'indexation positive et négative, le découpage, les listes imbriquées et la méthode index().

Une liste Python est une séquence ordonnée et modifiable pouvant contenir des éléments de tout type. Comme les listes sont ordonnées, chaque élément possède une position numérique fixe — appelée index — que vous pouvez utiliser pour lire, mettre à jour ou découper les données.

Ce chapitre couvre :

  • L'indexation positive et négative
  • Le découpage (start, stop, step)
  • La vérification d'appartenance avec in
  • La recherche de positions avec index()
  • L'accès aux éléments dans des listes imbriquées

Pour modifier des listes, consultez Modifier les éléments d'une liste, Ajouter des éléments à une liste et Supprimer des éléments d'une liste.

Indexation positive

Python utilise l'indexation à base zéro : le premier élément se trouve à l'index 0, le deuxième à l'index 1, et ainsi de suite.

Index:   0        1         2         3        4
         ↓        ↓         ↓         ↓        ↓
fruits = ["apple","banana","cherry","durian","elderberry"]

Utilisez les crochets [] pour récupérer un élément par son index :

python— editable, runs on the server

Demander un index qui n'existe pas lève une IndexError :

fruits = ["apple", "banana", "cherry"]
print(fruits[10])  # IndexError: list index out of range

Vérifiez toujours len(list) - 1 pour trouver la borne supérieure valide, ou utilisez un bloc try/except lorsque la longueur est incertaine.

Indexation négative

Les indices négatifs comptent à rebours depuis la fin de la liste. L'index -1 correspond au dernier élément, -2 à l'avant-dernier, et ainsi de suite.

Index:    -5       -4        -3        -2       -1
          ↓        ↓         ↓         ↓        ↓
fruits = ["apple","banana","cherry","durian","elderberry"]
python— editable, runs on the server

L'indexation négative est particulièrement utile lorsque vous avez besoin du dernier élément d'une liste dont la longueur est inconnue.

Découpage de listes

Un découpage extrait une sous-liste en utilisant la syntaxe list[start:stop]. L'index start est inclus ; l'index stop est exclu.

python— editable, runs on the server

Le découpage ne lève jamais d'IndexError — Python ajuste automatiquement les bornes hors plage :

fruits = ["apple", "banana", "cherry"]
print(fruits[1:100])   # ['banana', 'cherry'] — no error

Découpage avec pas

Un troisième paramètre — le pas — contrôle le nombre d'éléments à sauter entre chaque sélection : list[start:stop:step].

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(numbers[0:9:2])   # [0, 2, 4, 6, 8]  — every second item
print(numbers[::3])     # [0, 3, 6, 9]      — every third item
print(numbers[::-1])    # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]  — reversed

Un pas négatif inverse la direction, donc list[::-1] est la façon idiomatique d'inverser une liste sans la modifier sur place.

Découpage avec des indices négatifs

Les indices négatifs fonctionnent également dans les découpages :

fruits = ["apple", "banana", "cherry", "durian", "elderberry"]

print(fruits[-3:])     # ['cherry', 'durian', 'elderberry']  — last 3
print(fruits[-4:-1])   # ['banana', 'cherry', 'durian']

Vérifier si un élément existe

Utilisez l'opérateur in pour tester l'appartenance sans connaître l'index :

fruits = ["apple", "banana", "cherry", "durian", "elderberry"]

print("banana" in fruits)    # True
print("mango" in fruits)     # False
print("mango" not in fruits) # True

C'est plus propre qu'une itération manuelle et constitue le schéma préféré pour les vérifications d'existence.

Trouver l'index d'un élément

La méthode index() retourne la position de la première occurrence d'une valeur :

fruits = ["apple", "banana", "cherry", "banana", "elderberry"]

print(fruits.index("banana"))     # 1 — first occurrence
print(fruits.index("elderberry")) # 4

index() lève une ValueError si la valeur n'est pas trouvée. Protégez-vous avec in d'abord :

fruits = ["apple", "banana", "cherry"]

target = "mango"
if target in fruits:
    print(fruits.index(target))
else:
    print(f"{target!r} is not in the list")

Vous pouvez également limiter la recherche à une plage avec index(value, start, stop) :

fruits = ["apple", "banana", "cherry", "banana", "elderberry"]

# Find 'banana' starting from index 2 (skips the first occurrence)
print(fruits.index("banana", 2))  # 3

Accéder aux éléments de listes imbriquées

Une liste peut contenir d'autres listes comme éléments. Accédez aux éléments imbriqués en chaînant les crochets d'index :

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
]

print(matrix[0])       # [1, 2, 3]   — first row
print(matrix[1][2])    # 6           — row 1, column 2
print(matrix[-1][-1])  # 9           — last row, last column

La même syntaxe de découpage s'applique aux listes imbriquées :

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(matrix[0][1:])   # [2, 3]

Référence rapide

SyntaxeDescription
lst[i]Élément à l'index i (base 0)
lst[-i]Élément à i positions depuis la fin
lst[a:b]Tranche de a (inclus) à b (exclu)
lst[a:b:s]Tranche avec le pas s
lst[::-1]Copie inversée de la liste
x in lstTrue si x est présent
lst.index(x)Premier index de x

Chapitres associés

Pratique

Pratique
Which of the following ways can be used to access list items in Python?
Which of the following ways can be used to access list items in Python?
Was this page helpful?