3113 votes

Quelle est la différence entre les méthodes de liste de Python append et extend ?

Quelle est la différence entre les méthodes de la liste append() et extend() ?

32voto

Comme Ali A dit, n'importe quel iterable fera l'affaire pour l'extend, voici un exemple pour l'argument du dictionnaire,

>>> li=[1,2,3]
>>> li.extend({4:5,6:7})
>>> li
[1, 2, 3, 4, 6]
>>>

comme vous pouvez le voir, seulement keys sont ajoutés à la liste.

24voto

Chaitanya Points 759

append(object) - Met à jour la liste en ajoutant un objet à la liste.

x = [20]
# List passed to the append(object) method is treated as a single object.
x.append([21, 22, 23])
# Hence the resultant list length will be 2
print(x)
--> [20, [21, 22, 23]]

extend(list) - Concatène essentiellement deux listes.

x = [20]
# The parameter passed to extend(list) method is treated as a list.
# Eventually it is two lists being concatenated.
x.extend([21, 22, 23])
# Here the resultant list's length is 4
print(x)
[20, 21, 22, 23]

22voto

antitrust Points 4853

extend() peut être utilisé avec un argument itérateur. Voici un exemple. Vous souhaitez créer une liste à partir d'une liste de listes de cette manière :

De

list2d = [[1,2,3],[4,5,6], [7], [8,9]]

vous voulez

>>>
[1, 2, 3, 4, 5, 6, 7, 8, 9]

Vous pouvez utiliser itertools.chain.from_iterable() pour le faire. La sortie de cette méthode est un itérateur. Son implémentation est équivalente à

def from_iterable(iterables):
    # chain.from_iterable(['ABC', 'DEF']) --> A B C D E F
    for it in iterables:
        for element in it:
            yield element

Pour revenir à notre exemple, nous pouvons faire

import itertools
list2d = [[1,2,3],[4,5,6], [7], [8,9]]
merged = list(itertools.chain.from_iterable(list2d))

et obtenir la liste des personnes recherchées.

Voici comment procéder de manière équivalente extend() peut être utilisé avec un argument itérateur :

merged = []
merged.extend(itertools.chain.from_iterable(list2d))
print(merged)
>>>
[1, 2, 3, 4, 5, 6, 7, 8, 9]

22voto

user3138785 Points 11

C'est l'équivalent de append et extend en utilisant le + opérateur :

>>> x = [1,2,3]
>>> x
[1, 2, 3]
>>> x = x + [4,5,6] # Extend
>>> x
[1, 2, 3, 4, 5, 6]
>>> x = x + [[7,8]] # Append
>>> x
[1, 2, 3, 4, 5, 6, [7, 8]]

17voto

The Gr8 Adakron Points 518

append() : Il est essentiellement utilisé en Python pour ajouter un élément.

Exemple 1 :

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

Exemple 2 :

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

extend() : Où extend(), est utilisé pour fusionner deux listes ou insérer plusieurs éléments dans une liste.

Exemple 1 :

a = [1, 2, 3, 4] b = [5, 6, 7, 8] a.extend(b) print(a) a = [1, 2, 3, 4, 5, 6, 7, 8]

Exemple 2 :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X