Listen in Python verbinden
Alle Methoden zum Verbinden von Python-Listen: +-Operator, extend(), Entpacken, itertools.chain und str.join() für Strings.
Python bietet mehrere Möglichkeiten, Listen zu kombinieren und eine Liste von Zeichenketten in einen einzelnen string umzuwandeln. Diese Seite behandelt beide Aufgaben klar und verständlich:
- Listen verbinden — zwei oder mehr Listen zu einer neuen Liste zusammenführen (mit
+,extend(), Entpacken oderitertools.chain). - Listenelemente zu einem string verbinden — mithilfe der Methode
str.join(), die die Elemente einer Liste zu einem durch Trennzeichen getrennten string verkettet.
Das Verständnis des Unterschieds zwischen diesen beiden Operationen verhindert eine häufige Fehlerquelle für Einsteiger.
Zwei Listen zu einer zusammenführen
Den +-Operator verwenden
Der einfachste Weg, zwei Listen zusammenzuführen, ist der +-Operator. Er gibt eine neue Liste zurück, die alle Elemente beider Operanden enthält, ohne die Originale zu verändern.
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined = list1 + list2
print(combined)Ausgabe:
[1, 2, 3, 4, 5, 6]+ lässt sich verketten, um mehr als zwei Listen in einem Ausdruck zusammenzuführen: a + b + c.
Die extend()-Methode verwenden
extend() fügt alle Elemente einer Liste in place am Ende einer anderen Liste ein. Im Gegensatz zu + verändert sie die ursprüngliche Liste und erstellt keine neue.
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1.extend(list2)
print(list1)Ausgabe:
[1, 2, 3, 4, 5, 6]Verwende extend(), wenn du die ursprüngliche list1 nicht unverändert behalten musst und keine zusätzliche Kopie im Speicher erstellen möchtest.
extend() vs. append(): append() fügt sein Argument als einzelnes Element hinzu, sodass list1.append(list2) das Ergebnis [1, 2, 3, [4, 5, 6]] liefert — eine verschachtelte Liste, keine zusammengeführte. Verwende immer extend(), wenn du die zweite Liste in die erste einfügen möchtest.
Entpacken (Operator *) verwenden
Python 3.5 und höher erlauben die Stern-Entpackungs-Syntax innerhalb eines Listen-Literals. Dies ist kompakt und funktioniert mit einer beliebigen Anzahl von Iterables in einem einzigen Ausdruck.
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined = [*list1, *list2]
print(combined)Ausgabe:
[1, 2, 3, 4, 5, 6]Du kannst auch zusätzliche Elemente inline einfügen: [0, *list1, *list2, 7].
itertools.chain() verwenden
itertools.chain() aus der Standardbibliothek verbindet eine beliebige Anzahl von Iterables verzögert — es wird keine Zwischenliste erstellt, bis du die Werte abrufst. Dies ist die speichereffizienteste Option bei der Verarbeitung großer Sequenzen.
import itertools
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined = list(itertools.chain(list1, list2))
print(combined)Ausgabe:
[1, 2, 3, 4, 5, 6]Übergib itertools.chain(*nested), um eine Liste von Listen in einem Aufruf zu glätten.
Listenelemente mit str.join() zu einem string verbinden
str.join() ist eine string-Methode — sie wird auf dem Trennzeichen-string aufgerufen und nimmt ein Iterable als Argument entgegen. Sie gibt einen einzelnen string zurück, in dem alle Elemente verkettet und durch das Trennzeichen getrennt sind.
delimiter.join(iterable)Grundlegendes Beispiel
Ausgabe:
apple, banana, cherryÜbergib einen leeren string '' als Trennzeichen, um ohne jegliches Trennzeichen zu verketten.
Häufige Trennzeichen
| Trennzeichen | Ausdruck | Ergebnis |
|---|---|---|
| Komma-Leerzeichen | ', '.join(['a', 'b', 'c']) | a, b, c |
| Leerzeichen | ' '.join(['Python', 'is', 'great']) | Python is great |
| Bindestrich | '-'.join(['2024', '01', '15']) | 2024-01-15 |
| Zeilenumbruch | '\n'.join(['line one', 'line two']) | mehrzeiliger Block |
| Kein Trennzeichen | ''.join(['H', 'i', '!']) | Hi! |
Eine Liste von Zahlen verbinden
str.join() erfordert, dass jedes Element ein string ist. Das direkte Übergeben von Ganzzahlen löst einen TypeError aus. Konvertiere sie zunächst mit map(str, ...) oder einem Generatorausdruck.
nums = [10, 20, 30]
result = ', '.join(map(str, nums))
print(result)Ausgabe:
10, 20, 30Ein Generatorausdruck erzielt dasselbe Ergebnis und ermöglicht es, jede Zahl beim Durchlauf zu formatieren:
Ausgabe:
12345Mehrzeilige Strings erstellen
'\n'.join() ist der idiomatische Weg, einen mehrzeiligen string aus einer Liste von Zeilen ohne abschließende Zeilenumbrüche zu erstellen.
lines = ['line one', 'line two', 'line three']
block = '\n'.join(lines)
print(block)Ausgabe:
line one
line two
line threeDen richtigen Ansatz wählen
| Ziel | Beste Methode |
|---|---|
| Zwei Listen zu einer neuen Liste zusammenführen | Operator + |
| Alle Elemente einer Liste in eine andere einfügen | extend() |
| Mehrere Iterables ohne eine zusätzliche Kopie kombinieren | itertools.chain() |
| Innerhalb eines Literals oder mit zusätzlichen Elementen kombinieren | [*a, *b] Entpacken |
| Eine Liste von Zeichenketten in einen string mit Trennzeichen umwandeln | str.join() |
| Eine Liste von Zahlen in einen string umwandeln | str.join(map(str, lst)) |
Verwandte Themen
- Python Lists — Listen erstellen, indizieren und slicen
- List Methods — vollständige Referenz für
append(),extend(),remove()und mehr - Loop Lists — über Listenelemente mit
forundwhileiterieren - Copy Lists — flaches vs. tiefes Kopieren
- List Comprehension — Listen in einem Ausdruck erstellen und transformieren
- Concatenate Strings — weitere Möglichkeiten, Strings aus Teilen zu erstellen