418 Stimmen

Wie man mehrere Werte einer Liste in Python anhängt

Ich versuche herauszufinden, wie ich mehrere Werte einer Liste in Python anhängen kann. Ich weiß, dass es einige Methoden gibt, dies zu tun, wie z.B. die Werte manuell einzugeben oder die Anhängeoperation in einer for-Schleife durchzuführen oder die Funktionen append und extend.

Aber ich frage mich, ob es einen eleganteren Weg gibt, dies zu tun? Vielleicht ein bestimmtes Paket oder eine Funktion?

757voto

poke Punkte 338075

Sie können die Sequenzmethode list.extend verwenden, um die Liste um mehrere Werte aus jeder Art von Iterable zu erweitern, sei es eine andere Liste oder etwas anderes, das eine Sequenz 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]

Sie können also list.append() verwenden, um einen einzelnen Wert anzuhängen, und list.extend(), um mehrere Werte anzuhängen.

56voto

slider Punkte 12840

Abgesehen von der append-Funktion, wenn mit "mehreren Werten" eine weitere Liste gemeint ist, können Sie sie einfach wie folgt zusammenfügen.

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

15voto

Silas Ray Punkte 25276

Wenn Sie einen Blick auf die offizielle Dokumentation werfen, werden Sie direkt unter append, extend sehen. Das ist, wonach Sie suchen.

Es gibt auch itertools.chain, wenn Sie mehr an effizienter Iteration interessiert sind als daran, mit einer vollständig bevölkerten Datenstruktur zu enden.

3voto

not a robot Punkte 3525

Eine weitere Lösung besteht darin, beide Listen in einer neuen Liste auszupacken und sie der Kopie der Originalliste zuzuweisen:

my_list[:] = [*my_list, *new_items]

Ein Beispiel:

my_list = [1, 2]
new_items = [3, 4, 5]

my_list[:] = [*my_list, *new_items]
my_list                                # [1, 2, 3, 4, 5]

oder weisen Sie einer leeren Scheibe zu, wie in Saumya Prasads Antwort (aber am Ende der Liste):

length = len(my_list)
my_list[length:length] = new_items
my_list                                # [1, 2, 3, 4, 5]

Es ist erwähnenswert, dass list.extend und die Zuweisung an eine leere Scheibe die Liste vor Ort ändern, während itertools.chain oder das Auspacken oder der Operator + eine neue Liste erstellen.

1voto

BenSeedGangMu Punkte 221

Wenn die Anzahl der Elemente in einer Variable gespeichert wurde, sagen n. können Sie List Comprehension und Pluszeichen für die Listenexpansion verwenden.

lst = ['A', 'B']
n = 1
new_lst = lst + ['flag'+str(x) for x in range(n)]
print(new_lst)

>>> ['A','B','flag0','flag1']

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