ComparaisonComparaisons

append() vs extend()

append() ajoute un seul élément à la fin de la liste, même si c’est une liste entière, tandis que extend() ajoute un par un tous les éléments de la collection donnée.

Sur cette page

Comparaison point par point

#

Exemple

#
Python
frontend = ["HTML"]
frontend.append("CSS")
frontend.extend(["JavaScript", "React"])

print(frontend)
Résultatrésultat enregistré, vous pouvez le vérifier
['HTML', 'CSS', 'JavaScript', 'React']

Définition et utilisation

#

Les deux méthodes modifient la liste en place et ajoutent de nouveaux éléments à sa fin. Les deux renvoient None, donc ne réaffectez pas leur résultat à la variable.

Elles diffèrent par ce qu’elles considèrent comme un seul élément. append(x) ajoute exactement ce que vous donnez, comme une seule nouvelle position, donc une liste passée en argument finit à la fin comme un élément imbriqué. extend(collection) décompose la collection donnée et ajoute chacun de ses éléments séparément. L’opérateur += sur une liste se comporte comme extend().

Quand vous ajoutez une seule valeur, même si elle est elle-même une liste ou un tuple, utilisez append(). Quand vous voulez ajouter le contenu d’une autre collection élément par élément, utilisez extend() ou +=. Les confondre est une erreur fréquente : append() là où il fallait extend() crée une liste contenant une liste imbriquée.

Syntaxe

#
Syntaxe
list.append(element)
list.extend(iterable)

Plus d’exemples

#
append() avec une liste l’imbrique à l’intérieur
Python
versions = ["1.0"]
versions.append(["1.1", "1.2"])
print(versions)

other = ["1.0"]
other.extend(["1.1", "1.2"])
print(other)
Résultatrésultat enregistré, vous pouvez le vérifier
['1.0', ['1.1', '1.2']]
['1.0', '1.1', '1.2']
extend() avec une chaîne ajoute des lettres
Python
letters = ["a"]
letters.extend("bc")
print(letters)

letters.append("bc")
print(letters)
Résultatrésultat enregistré, vous pouvez le vérifier
['a', 'b', 'c']
['a', 'b', 'c', 'bc']

Bonnes pratiques

#
  • N’écrivez pas liste = liste.append(x) ni liste = liste.extend(y). Les deux méthodes renvoient None.
  • Pour ajouter une chaîne entière comme un seul élément, utilisez append(), pas extend().
  • Si vous ne voulez pas modifier l’original, combinez les listes avec l’opérateur + : new_list = a + b.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.