Python extend: So fügt man zwei Listen zusammen

Die Python-extend-Methode bietet Programmiererinnen und Programmierern die Möglichkeit, eine bereits existierende Liste um die Elemente einer zweiten Liste zu erweitern. Dabei ist wichtig zu wissen, dass die anzuhängende Elemente am Ende der Liste hinzugefügt werden – wenn Sie ein Element an einem bestimmten Index einer Liste hinzufügen oder nur einzelne Elemente anhängen möchten, sind Python insert oder Python append die bessere Wahl.

Python extend – Funktionsweise und Syntax

Die Funktionsweise von extend() ist sehr einfach – die Methode nimmt eine Liste und hängt an ihrem Ende eine zweite Liste an, sodass das erste Element der zweiten Liste direkt nach dem letzten Element der ersten Liste steht. Daraus wird die erste Liste um die Elemente der zweiten Liste erweitert. Programmiererinnen und Programmierer nennen dieses Verfahren Konkatenation. Die Syntax von extend() ist simpel, wie in folgender Code-Zeile zu sehen:

liste.extend(liste2)
Python

In diesem Beispiel werden die Elemente aus liste2 am Ende von liste angehängt. Dabei wird aber keine neue Liste mit allen Elementen zurückgegeben – stattdessen wird die ursprüngliche Liste direkt modifiziert. Die zweite Liste wird im Gegensatz zur ursprünglichen nicht modifiziert. Die Funktionsweise von extend() wird im folgenden konkreten Beispiel anschaulich:

liste = ["eins", "zwei", "drei"]
liste2 = ["vier", "fuenf", "sechs"]
liste.extend(liste2)
print(liste) # Ausgabe: ['eins', 'zwei', 'drei', 'vier', 'fuenf', 'sechs']
liste.extend([7, 8, 9])
print(liste) # Ausgabe: ['eins', 'zwei', 'drei', 'vier', 'fuenf', 'sechs', 7, 8, 9]
Python

Wie zu sehen ist, verhält sich die Methode genau wie erwartet. Die anzuhängende Liste können Sie entweder im Vorhinein als Objekt anlegen oder beim Aufruf der Methode direkt als Parameter übergeben. Das Beispiel zeigt auch, dass die Elemente der anzuhängenden Listen einen beliebigen Datentyp annehmen können. Das ist möglich, weil eine Python-Liste heterogen sein kann, d. h. sie kann Elemente verschiedener Datentypen enthalten.

Obwohl extend() am häufigsten benutzt wird, um zwei Listen zu konkatenieren, gibt es auch andere Anwendungen dieser Methode, die Sie kennen sollten. Die extend-Methode akzeptiert nicht nur Listen als Parameter, sondern alle iterable-Objekte (Objekte, die Elemente enthalten, über denen man iterieren kann). Zu diesen Iterables gehören u. a. Python Lists, Python Strings und Python Dictionaries. Beim Aufruf von extend() kann irgendein Iterable als Parameter übergeben werden. Die Bestandteile des Iterables werden der Liste dann einzeln hinzugefügt. Diese Eigenschaft wird im folgenden Beispiel verdeutlicht.

chars = ['a', 'b', 'c']
string = "def"
chars.extend(string)
print(chars) # Ausgabe: ['a', 'b', 'c', 'd', 'e', 'f']
Python

In diesem Beispiel wurde ein String (eine Zeichenkette) als Argument übergeben. Dabei wurden die einzelnen Bestandteile des Strings (die Zeichen) einzeln der Liste hinzugefügt.

Alternativen zu Python extend

Die extend-Methode bietet Ihnen eine elegante Lösung, eine Liste um die Elemente einer anderen Liste zu erweitern. Es gibt jedoch ein paar Alternativen, die Sie kennen sollten.

Der Additions-Operator

Der Additions-Operator (bzw. das Pluszeichen) ist einer der gängigsten Python-Operatoren und wird meistens zur Addition von zwei Zahlen verwendet. Er kann in Python aber auch zu anderen Zwecken genutzt werden, auch für das Zusammenfügen von Listen. Mit dem Additions-Operator ist es sogar möglich, beliebig viele Listen gleichzeitig zusammenzufügen. Dies wird im folgenden Beispiel verdeutlicht:

europa = ["Deutschland", "Finnland"]
asien = ["China", "Indien"]
afrika = ["Sudan", "Mali"]
laender = europa + asien + afrika
print(europa) # Ausgabe: ['Deutschland', 'Finnland']
print(asien) # Ausgabe: ['China', 'Indien']
print(afrika) # Ausgabe: ['Sudan', 'Mali']
print(laender) # Ausgabe: ['Deutschland', 'Finnland', 'China', 'Indien', 'Sudan', 'Mali']
Python

Wie zu sehen ist, liefert diese Vorgehensweise fast das gleiche Ergebnis wie extend(), jedoch gibt es einen sehr wichtigen Unterschied. Im Gegensatz zur extend-Methode modifiziert der Additions-Operator keine von den übergebenen Listen – stattdessen wird das Ergebnis als neue Liste zurückgegeben. Da dafür ein neues Objekt im Speicher angelegt wird, ist der Additions-Operator beim Zusammenfügen zweier Listen etwas ineffizienter als die extend-Methode. Dies sollte berücksichtigt werden, wenn Sie mit sehr großen Listen arbeiten oder Ihr Programm möglichst effizient sein soll.

Tipp

Wenn Sie anstatt des Additions-Operators den Konkatenations-Operator (+=) benutzen, wird keine zusätzliche Liste erstellt, sondern die ursprüngliche modifiziert. Dadurch wird der Effizienznachteil des Additions-Operators umgangen, jedoch funktionieren extend() und += nicht bei allen Iterables gleich.

Die append-Methode

Die append-Methode hat eine ähnliche Funktionsweise wie extend(), unterscheidet sich aber dadurch, dass sie einer Liste nur ein einzelnes Element hinzufügen kann. Entsprechend ist es auch unmöglich, dieser Methode ein Iterable zu übergeben. Das folgende Beispiel dient zur Veranschaulichung:

list = [0, 1, 1, 2]
list.extend([3])
print(list) # Ausgabe: [0, 1, 1, 2, 3]
list.append(5)
print(list) # Ausgabe: [0, 1, 1, 2, 3, 5]
Python

Hier liefern extend() und append() dasselbe Ergebnis, außer dass man bei append() das hinzuzufügende Element nicht in eckigen Klammern angeben muss. Wenn man mit append() allerdings mehrere Elemente der Liste hinzufügen möchte, müsste man mit einer Python-For-Loop über eine schon vorhandene Liste iterieren. Daher ist append() nur sinnvoll, wenn es sich wirklich nur um ein einzelnes Element handelt.

Tipp

Sie wollen Ihre Website oder andere Webanwendung schnell, leicht und sogar direkt über Git online bringen? Dann ist Deploy Now von IONOS die perfekte Plattform für Sie.