3111 Stimmen

Was ist der Unterschied zwischen den Python-Listenmethoden append und extend?

Was ist der Unterschied zwischen den Listenmethoden append() y extend() ?

7voto

Crabime Punkte 584

Ich hoffe, dass ich einen nützlichen Beitrag zu dieser Frage leisten kann. Wenn Ihre Liste ein Objekt eines bestimmten Typs speichert, zum Beispiel Info Hier ist eine Situation, die extend Methode ist nicht geeignet: In einem for Schleife und die Erzeugung einer Info Objekt jedes Mal und mit extend um sie in Ihrer Liste zu speichern, wird dies fehlschlagen. Die Ausnahme ist wie unten:

TypeError: 'Info'-Objekt ist nicht iterierbar

Aber wenn Sie die append Methode ist das Ergebnis in Ordnung. Denn jedes Mal, wenn Sie die extend wird es immer wie eine Liste oder eine andere Auflistung behandelt, iteriert und hinter die vorherige Liste gestellt. Ein bestimmtes Objekt kann natürlich nicht iteriert werden.

5voto

AbstProcDo Punkte 17041

Um sie intuitiv zu unterscheiden

l1 = ['a', 'b', 'c']
l2 = ['d', 'e', 'f']
l1.append(l2)
l1
['a', 'b', 'c', ['d', 'e', 'f']]

Es ist wie l1 einen Körper in ihrem Körper reproduzieren (verschachtelt).

# Reset l1 = ['a', 'b', 'c']
l1.extend(l2)
l1
['a', 'b', 'c', 'd', 'e', 'f']

Es ist, als würden zwei getrennte Menschen heiraten und eine gemeinsame Familie gründen.

Außerdem habe ich einen ausführlichen Spickzettel mit allen Methoden der Liste für Sie erstellt.

list_methods = {'Add': {'extend', 'append', 'insert'},
                'Remove': {'pop', 'remove', 'clear'}
                'Sort': {'reverse', 'sort'},
                'Search': {'count', 'index'},
                'Copy': {'copy'},
                }

3voto

tessie Punkte 792

extend(L) erweitert die Liste durch Anhängen aller Elemente der angegebenen Liste L .

>>> a
[1, 2, 3]
a.extend([4])  #is eqivalent of a[len(a):] = [4]
>>> a
[1, 2, 3, 4]
a = [1, 2, 3]
>>> a
[1, 2, 3]
>>> a[len(a):] = [4]
>>> a
[1, 2, 3, 4]

0voto

ilias iliadis Punkte 531

append "erweitert" die Liste (an Ort und Stelle) um nur einen Artikel das einzelne (als Argument) übergebene Objekt.

extend "erweitert" die Liste (an Ort und Stelle) um so viele Artikel wie das (als Argument) übergebene Objekt enthält.

Dies mag etwas verwirrend sein für str Objekte.

  1. Wenn Sie eine Zeichenkette als Argument übergeben: append fügt eine einzelne Zeichenkette am Ende hinzu, aber extend fügt so viele "einzelne" 'str'-Elemente hinzu, wie die Länge der Zeichenkette beträgt.
  2. Wenn Sie eine Liste von Zeichenketten als Argument übergeben: append fügt am Ende immer noch ein einzelnes "Listen"-Element hinzu und extend fügt so viele 'Listen'-Elemente hinzu, wie die Länge der übergebenen Liste beträgt.
def append_o(a_list, element):
    a_list.append(element)
    print('append:', end = ' ')
    for item in a_list:
        print(item, end = ',')
    print()

def extend_o(a_list, element):
    a_list.extend(element)
    print('extend:', end = ' ')
    for item in a_list:
        print(item, end = ',')
    print()
append_o(['ab'],'cd')

extend_o(['ab'],'cd')
append_o(['ab'],['cd', 'ef'])
extend_o(['ab'],['cd', 'ef'])
append_o(['ab'],['cd'])
extend_o(['ab'],['cd'])

produziert:

append: ab,cd,
extend: ab,c,d,
append: ab,['cd', 'ef'],
extend: ab,cd,ef,
append: ab,['cd'],
extend: ab,cd,

0voto

vivek Punkte 423

Append und extend sind einer der Erweiterungsmechanismen in Python.

Anhängen: Fügt ein Element an das Ende der Liste an.

my_list = [1,2,3,4]

Um der Liste ein neues Element hinzuzufügen, können wir die Methode append wie folgt verwenden.

my_list.append(5)

Die Standardposition, an der das neue Element hinzugefügt wird, ist immer die Position (Länge+1).

Einfügen: Die Methode insert wurde verwendet, um die Einschränkungen von append zu überwinden. Mit insert können wir die genaue Position, an der das neue Element eingefügt werden soll, explizit festlegen.

Methodendeskriptor von insert(index, object). Sie nimmt zwei Argumente entgegen, wobei das erste der Index ist, mit dem wir unser Element einfügen wollen, und das zweite das Element selbst.

Example: my_list = [1,2,3,4]
my_list[4, 'a']
my_list
[1,2,3,4,'a']

Erweitern: Dies ist sehr nützlich, wenn wir zwei oder mehr Listen zu einer einzigen Liste verbinden wollen. Wenn wir zwei Listen ohne extend verbinden wollen, enthält das resultierende Objekt eine Liste von Listen.

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

Wenn wir versuchen, auf das Element an Position 2 zuzugreifen, erhalten wir eine Liste ([3]) anstelle des Elements. Um zwei Listen zu verbinden, müssen wir append verwenden.

a = [1,2]
b = [3]
a.extend(b)
print (a)
[1,2,3]

So verbinden Sie mehrere Listen

a = [1]
b = [2]
c = [3]
a.extend(b+c)
print (a)
[1,2,3]

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X