Quelle est la différence entre les méthodes de la liste append()
et extend()
?
Réponses
Trop de publicités?Ajouter ou étendre
Avec append, vous pouvez ajouter un élément unique qui prolongera la liste :
>>> a = [1,2]
>>> a.append(3)
>>> a
[1,2,3]
Si vous voulez étendre plus d'un élément, vous devez utiliser extend, car vous ne pouvez ajouter qu'un seul élément ou une seule liste d'éléments :
>>> a.append([4,5])
>>> a
>>> [1,2,3,[4,5]]
De sorte que vous obteniez une liste imbriquée
Au lieu de cela, avec extend, vous pouvez étendre un seul élément comme ceci
>>> a = [1,2]
>>> a.extend([3])
>>> a
[1,2,3]
Ou, différemment, à partir de append, étendre plus d'éléments en une seule fois sans imbriquer la liste dans la liste d'origine (c'est la raison du nom extend).
>>> a.extend([4,5,6])
>>> a
[1,2,3,4,5,6]
Ajout d'un élément avec les deux méthodes
append et extend peuvent tous deux ajouter un élément à la fin de la liste, bien que append soit plus simple.
ajouter 1 élément
>>> x = [1,2]
>>> x.append(3)
>>> x
[1,2,3]
prolonger un élément
>>> x = [1,2]
>>> x.extend([3])
>>> x
[1,2,3]
Ajouter d'autres éléments... avec des résultats différents
Si vous utilisez append pour plus d'un élément, vous devez passer une liste d'éléments comme arguments et vous obtiendrez une liste NESTED !
>>> x = [1,2]
>>> x.append([3,4])
>>> x
[1,2,[3,4]]
Avec extend, au contraire, vous passez une liste comme argument, mais vous obtiendrez une liste avec le nouvel élément qui n'est pas imbriqué dans l'ancien.
>>> z = [1,2]
>>> z.extend([3,4])
>>> z
[1,2,3,4]
Ainsi, avec plus d'éléments, vous utiliserez extend pour obtenir une liste avec plus d'éléments. Cependant, l'ajout d'une liste n'ajoutera pas plus d'éléments à la liste, mais un élément qui est une liste imbriquée comme vous pouvez clairement le voir dans la sortie du code.
Le site append()
ajoute un seul élément à la fin de la liste.
x = [1, 2, 3]
x.append([4, 5])
x.append('abc')
print(x)
# gives you
[1, 2, 3, [4, 5], 'abc']
Le site extend()
prend un argument, une liste, et ajoute chacun des éléments de l'argument à la liste originale. (Les listes sont implémentées comme des classes. "Créer une liste, c'est en fait instancier une classe. En tant que telle, une liste possède des méthodes qui opèrent sur elle).
x = [1, 2, 3]
x.extend([4, 5])
x.extend('abc')
print(x)
# gives you
[1, 2, 3, 4, 5, 'a', 'b', 'c']
De Plongez dans Python .
Vous pouvez utiliser "+" pour renvoyer l'extension, au lieu de l'extension en place.
l1=range(10)
l1+[11]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11]
l2=range(10,1,-1)
l1+l2
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 9, 8, 7, 6, 5, 4, 3, 2]
De même, +=
pour le comportement en place, mais avec de légères différences par rapport à append
& extend
. L'une des plus grandes différences de +=
de append
et extend
c'est lorsqu'il est utilisé dans les champs d'application des fonctions, cf. cet article de blog .