W3docs

Modifier les éléments d'une liste

Apprenez à modifier les éléments d'une liste Python avec l'affectation par index, le slicing, append(), insert(), extend() et la compréhension de liste.

Les listes Python sont mutables, ce qui signifie que vous pouvez modifier leur contenu après leur création. Ce chapitre couvre toutes les techniques pratiques pour modifier les éléments d'une liste : l'affectation directe par index, le remplacement par slice, append(), insert(), extend() et la compréhension de liste. Savoir quand utiliser chaque approche est essentiel pour écrire un code Python propre et efficace.

Modifier un seul élément par index

La façon la plus directe de modifier un élément est d'affecter une nouvelle valeur à sa position d'index. Les indices de liste commencent à 0.

fruits = ["apple", "banana", "cherry"]
fruits[1] = "mango"
print(fruits)

Résultat :

['apple', 'mango', 'cherry']

L'indexation négative compte depuis la fin de la liste. L'index -1 correspond au dernier élément, -2 à l'avant-dernier, et ainsi de suite.

colors = ["red", "green", "blue"]
colors[-1] = "yellow"
print(colors)

Résultat :

['red', 'green', 'yellow']

Si vous essayez d'affecter une valeur à un index inexistant, Python lève une IndexError. Utilisez les patterns d'accès aux listes ou len() pour rester dans les limites.

Remplacer une plage d'éléments avec le slicing

L'affectation par slice remplace une section contiguë d'une liste par une autre liste. Le slice my_list[start:end] sélectionne les éléments de l'index start jusqu'à (mais sans inclure) l'index end.

python— editable, runs on the server

Résultat :

[1, 20, 30, 5]

Notez que la liste de remplacement n'a pas besoin d'avoir la même longueur que le slice. Ici, trois éléments (2, 3, 4) ont été remplacés par deux éléments (20, 30), réduisant la liste d'un élément.

Vous pouvez également insérer des éléments sans en supprimer aucun en utilisant un slice vide :

letters = ["a", "b", "e"]
letters[2:2] = ["c", "d"]
print(letters)

Résultat :

['a', 'b', 'c', 'd', 'e']

append() — ajouter un élément à la fin

La méthode append() ajoute un seul élément à la fin d'une liste et modifie la liste en place. Elle ajoute toujours exactement un élément, même si cet élément est lui-même une liste.

python— editable, runs on the server

Résultat :

[1, 2, 3, 4, 5]

Ajouter une liste comme élément unique l'imbrique plutôt que de la fusionner :

my_list = [1, 2, 3]
my_list.append([4, 5])
print(my_list)

Résultat :

[1, 2, 3, [4, 5]]

Utilisez plutôt extend() si vous souhaitez fusionner tous les éléments d'une autre liste.

insert() — ajouter un élément à une position spécifique

La méthode insert() place un nouvel élément à un index donné, en décalant tous les éléments suivants d'une position vers la droite.

python— editable, runs on the server

Résultat :

[1, 2, 99, 3, 4]

insert() ne lève jamais d'IndexError pour des positions hors limites. Si vous passez un index plus grand que la longueur de la liste, l'élément est ajouté à la fin. Si vous passez un index négatif au-delà du début, il est ajouté au début.

extend() — fusionner un autre itérable dans la liste

La méthode extend() ajoute chaque élément d'un itérable (liste, tuple, string, etc.) à la fin de la liste. La liste d'origine s'agrandit en place.

python— editable, runs on the server

Résultat :

[1, 2, 3, 4, 5, 6, 7]

extend() vs append() en un coup d'œil :

MéthodeCe qu'elle ajouteRésultat pour [1,2] + [3,4]
append([3,4])Un élément (une liste imbriquée)[1, 2, [3, 4]]
extend([3,4])Chaque élément individuellement[1, 2, 3, 4]

Compréhension de liste — transformer des éléments avec une nouvelle liste

La compréhension de liste crée une nouvelle liste en appliquant une expression à chaque élément (avec un filtre optionnel). Après la compréhension, vous réaffectez la variable — la liste d'origine n'est pas modifiée en place.

python— editable, runs on the server

Résultat :

[4, 8, 12]

Vous pouvez également transformer chaque élément sans filtrer :

prices = [10.0, 25.5, 8.75]
discounted = [round(p * 0.9, 2) for p in prices]
print(discounted)

Résultat :

[9.0, 22.95, 7.88]

Utilisez la compréhension de liste lorsque vous souhaitez une formule concise et lisible pour produire une copie modifiée d'une liste.

Choisir la bonne approche

ObjectifMeilleure méthode
Modifier un élément à une position connueAffectation par index list[i] = value
Remplacer une plage d'élémentsAffectation par slice list[a:b] = new_items
Ajouter un élément à la finappend()
Ajouter un élément à une position spécifiqueinsert(index, value)
Fusionner tous les éléments d'un autre itérableextend()
Produire une copie modifiée selon une règleCompréhension de liste

Pour supprimer des éléments d'une liste, consultez Supprimer des éléments de liste. Pour trier une liste en place, consultez Trier les listes. Pour une référence complète de toutes les méthodes de liste, consultez Méthodes de liste.

Pratique

Pratique
In Python, how can we change items in a list?
In Python, how can we change items in a list?
Was this page helpful?