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.
Comparaison point par point
#Ce qu’elle ajoute
- list.append()
- Exactement un élément
- list.extend()
- Tous les éléments de la collection, un par un
Une liste passée en argument
- list.append()
- Finit à la fin comme un seul élément imbriqué
- list.extend()
- Est décomposée : chaque élément séparément
Changement de longueur de la liste
- list.extend()
- +nombre d’éléments de la collection
Une chaîne comme argument
- list.append()
- Ajoute toute la chaîne comme un seul élément
- list.extend()
- Ajoute séparément chaque caractère de la chaîne
Opérateur équivalent
- list.append()
- Aucun
Usage typique
- list.append()
- Ajout d’une seule valeur, par ex. le résultat d’un calcul
- list.extend()
- Fusion de deux listes en une seule
Exemple
#frontend = ["HTML"]
frontend.append("CSS")
frontend.extend(["JavaScript", "React"])
print(frontend)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
#list.append(element)
list.extend(iterable)Plus d’exemples
#versions = ["1.0"]
versions.append(["1.1", "1.2"])
print(versions)
other = ["1.0"]
other.extend(["1.1", "1.2"])
print(other)letters = ["a"]
letters.extend("bc")
print(letters)
letters.append("bc")
print(letters)Bonnes pratiques
#- N’écrivez pas
liste = liste.append(x)niliste = liste.extend(y). Les deux méthodes renvoientNone. - Pour ajouter une chaîne entière comme un seul élément, utilisez
append(), pasextend(). - 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.