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 for
Schleife oder die append
und extend
-Funktionen.
Ich frage mich jedoch, ob es einen ordentlicheren Weg gibt, dies zu tun. Vielleicht ein bestimmtes Paket oder eine bestimmte Funktion?
extend()
.more neat == additional package dependency
natürlich!Antworten:
Du kannst den ... benutzen Sequenzmethode verwenden
list.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, undlist.extend()
anhängen mehrere Werte.quelle
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 3Abgesehen von der
append
Funktion 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]
quelle
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.chain
Fälle, in denen Sie mehr an einer effizienten Iteration interessiert sind, als an einer vollständig ausgefüllten Datenstruktur.quelle
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']
quelle