W3docs

Listes Python : comment ajouter des éléments à une liste

Apprenez toutes les façons d'ajouter des éléments à une liste Python : append, extend, insert, l'opérateur + et l'affectation par tranches — avec des exemples et les pièges expliqués.

Les listes Python sont des séquences mutables, ce qui signifie que vous pouvez ajouter, supprimer et modifier des éléments après la création de la liste. Ce chapitre couvre chaque méthode et chaque opérateur que Python propose pour insérer de nouveaux éléments dans une liste, explique quand utiliser chacun d'eux et met en évidence les pièges les plus courants.

Méthodes et opérateurs en un coup d'œil

ApprocheAjoutePositionModifie en place ?
list.append(x)un élémentfinoui
list.extend(iterable)tous les éléments de l'itérablefinoui
list.insert(i, x)un élémentindex ioui
list + othertous les éléments de otherfinnon (renvoie une nouvelle liste)
list += othertous les éléments de otherfinoui
list[i:i] = itemsplusieurs élémentsindex ioui

Utiliser append()

append() ajoute un seul élément à la fin d'une liste. Elle modifie la liste en place et renvoie toujours None.

python— editable, runs on the server

append() accepte n'importe quel objet Python — des string, des entiers, des boolean, et même d'autres listes :

nums = [1, 2, 3]
nums.append(4)
print(nums)  # [1, 2, 3, 4]

Piège : ajouter une liste la imbrique

Si vous passez une liste à append(), Python traite cette liste comme un seul élément et crée une liste imbriquée — il ne fusionne pas les deux listes :

fruits = ['apple', 'banana']
fruits.append(['grape', 'kiwi'])
print(fruits)   # ['apple', 'banana', ['grape', 'kiwi']]
print(len(fruits))  # 3, not 4

Pour fusionner deux listes à la place, utilisez extend() ou l'opérateur + (présentés ci-dessous).

Utiliser extend()

extend() itère sur un itérable — une liste, un tuple, un ensemble ou toute autre séquence — et ajoute chacun de ses éléments à la fin de la liste :

python— editable, runs on the server

append() vs extend() — comparaison côte à côte

a = [1, 2, 3]
a.extend([4, 5])
print(a)        # [1, 2, 3, 4, 5]

b = [1, 2, 3]
b.append([4, 5])
print(b)        # [1, 2, 3, [4, 5]]  ← nested!

Piège : étendre avec une string

Les string sont itérables, donc extend() ajoutera chaque caractère comme un élément séparé :

letters = ['a', 'b']
letters.extend('cd')
print(letters)  # ['a', 'b', 'c', 'd']

Si vous souhaitez ajouter la string entière comme un seul élément, utilisez append() à la place.

Utiliser insert()

insert(i, x) ajoute l'élément x à la position i, décalant tous les éléments existants à partir de cet index d'une place vers la droite :

python— editable, runs on the server

Ajouter en début de liste (ajouter tout au début) est un cas d'usage courant :

fruits = ['banana', 'orange']
fruits.insert(0, 'apple')
print(fruits)  # ['apple', 'banana', 'orange']

Piège : index dépassant la longueur de la liste

Si l'index que vous passez est supérieur à la longueur actuelle de la liste, Python ne lève pas d'erreur — il ajoute simplement l'élément à la fin :

fruits = ['apple', 'banana']
fruits.insert(100, 'orange')
print(fruits)  # ['apple', 'banana', 'orange']

Les index négatifs fonctionnent aussi : insert(-1, x) insère juste avant le dernier élément.

Utiliser l'opérateur +

L'opérateur + concatène deux listes et renvoie une nouvelle liste. Aucune des listes d'origine n'est modifiée :

a = [1, 2, 3]
b = [4, 5, 6]
c = a + b
print(c)  # [1, 2, 3, 4, 5, 6]
print(a)  # [1, 2, 3]  — unchanged

Utilisez + lorsque vous devez conserver les originaux intacts, ou lorsque vous construisez une expression de liste plutôt que d'en muter une.

Utiliser += (affectation augmentée)

L'opérateur += est un raccourci pour extend() — il fusionne l'itérable du côté droit dans la liste existante en place :

a = [1, 2, 3]
a += [7, 8]
print(a)  # [1, 2, 3, 7, 8]

Contrairement à +, += ne crée pas de nouvelle liste — il met à jour a en place, ce qui est plus économe en mémoire lorsqu'on travaille avec de grandes listes.

Insérer plusieurs éléments à une position spécifique (affectation par tranches)

Pour insérer un bloc d'éléments au milieu d'une liste, l'affectation par tranches est l'approche la plus directe :

nums = [1, 2, 5, 6]
nums[2:2] = [3, 4]   # insert [3, 4] starting at index 2
print(nums)          # [1, 2, 3, 4, 5, 6]

La syntaxe list[i:i] = items ouvre une fenêtre de largeur nulle à l'index i et la remplit avec les éléments de items. Aucun élément existant n'est supprimé.

Choisir la bonne méthode

  • Ajouter un élément à la fin : utilisez append(). C'est l'option la plus simple et la plus rapide pour l'insertion d'un seul élément.
  • Fusionner une autre liste dans celle-ci : utilisez extend() ou +=. Les deux sont équivalents ; += est légèrement plus idiomatique dans les boucles.
  • Ajouter un élément à une position spécifique : utilisez insert().
  • Conserver la liste d'origine intacte : utilisez l'opérateur + et assignez le résultat à une nouvelle variable.
  • Insérer plusieurs éléments au milieu : utilisez l'affectation par tranches.

Chapitres connexes

Pratique

Pratique
Which of the following methods add items to a Python list?
Which of the following methods add items to a Python list?
Was this page helpful?