So hängen Sie mehrere Werte an eine Liste in Python an

200

Ich versuche herauszufinden, wie mehrere Werte an eine Liste in Python angehängt werden. Ich weiß, dass es dafür nur wenige Methoden gibt, z. B. die manuelle Eingabe der Werte oder das Einfügen der Append-Operation in eine forSchleife oder die appendund extend-Funktionen.

Ich frage mich jedoch, ob es einen ordentlicheren Weg gibt, dies zu tun. Vielleicht ein bestimmtes Paket oder eine bestimmte Funktion?

ChangeMyName
quelle
8
Haben Sie die gefundene Liste Dokumentation noch?
Martijn Pieters
5
Sie sagten, Sie wissen, dass es einige Methoden gibt , aber zeigen Sie nicht, was Sie versucht haben, oder erklären Sie, warum die Methoden, die Sie bereits kennen, nicht gut genug sind.
Nutzlos
Bitte definieren Sie ordentlicher alsextend() .
Frédéric Hamidi
3
@ FrédéricHamidi more neat == additional package dependencynatürlich!
Hexparrot
1
Wie kann diese Frage als nicht thematisch betrachtet werden?
Victor Schröder

Antworten:

403

Du kannst den ... benutzen Sequenzmethode verwendenlist.extend , um die Liste um mehrere Werte aus jeder Art von Iterable zu erweitern, sei es eine andere Liste oder eine andere Sache, die eine Folge von Werten bereitstellt.

>>> lst = [1, 2]
>>> lst.append(3)
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]

>>> lst.extend([5, 6, 7])
>>> lst.extend((8, 9, 10))
>>> lst
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> lst.extend(range(11, 14))
>>> lst
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

So können Sie verwenden list.append()anhängen einen einzigen Wert, und list.extend()anhängen mehrere Werte.

Sack
quelle
1
Es ist etwas kompliziert, Generatoren am ersten Tag der Verwendung von Python jemandem vorzustellen.
Daniel Roseman
1
@ DanielRoseman Mein Punkt ist, dass die Werte aus jeder Art von iterierbarer Sequenz stammen können.
Poke
7
Beachten Sie, dass Extend die Struktur des hinzugefügten Elements im Vergleich zu nicht beibehält append(). Mit Ihrem Beispiel mit Anhängen würden Sie erhalten [1, 2, 3, 4, [5, 6, 7], (8, 9, 10), range(11, 14)]. Python 3
Yohan Obadia
1
@YohanObadia Wenn dies für Python 3 in '17 der Fall war, ist dies nicht mehr der Fall - Python 3.7.7 macht genau das, was Poke beschrieben hat.
Post169
32

Abgesehen von der appendFunktion können Sie, wenn Sie mit "mehreren Werten" eine andere Liste meinen, diese einfach so verketten.

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a + b
[1, 2, 3, 4, 5, 6]
Schieberegler
quelle
9

Wenn Sie einen Blick auf die nehmen offizielle Dokumentation , sehen Sie rechts unten append, extend. Das ist es, wonach du suchst.

Es gibt auch itertools.chainFälle, in denen Sie mehr an einer effizienten Iteration interessiert sind, als an einer vollständig ausgefüllten Datenstruktur.

Silas Ray
quelle
2
letter = ["a", "b", "c", "d"]
letter.extend(["e", "f", "g", "h"])
letter.extend(("e", "f", "g", "h"))
print(letter)
... 
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'e', 'f', 'g', 'h']
    
Rhinolamer
quelle