Die Python-extend-Methode bietet Pro­gram­mie­re­rin­nen und Pro­gram­mie­rern die Mög­lich­keit, eine bereits exis­tie­ren­de Liste um die Elemente einer zweiten Liste zu erweitern. Dabei ist wichtig zu wissen, dass die an­zu­hän­gen­de Elemente am Ende der Liste hin­zu­ge­fügt werden – wenn Sie ein Element an einem be­stimm­ten Index einer Liste hin­zu­fü­gen oder nur einzelne Elemente anhängen möchten, sind Python insert oder Python append die bessere Wahl.

Python extend – Funk­ti­ons­wei­se und Syntax

Die Funk­ti­ons­wei­se 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. Pro­gram­mie­re­rin­nen und Pro­gram­mie­rer nennen dieses Verfahren Kon­ka­te­na­ti­on. 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 zu­rück­ge­ge­ben – statt­des­sen wird die ur­sprüng­li­che Liste direkt mo­di­fi­ziert. Die zweite Liste wird im Gegensatz zur ur­sprüng­li­chen nicht mo­di­fi­ziert. Die Funk­ti­ons­wei­se von extend() wird im folgenden konkreten Beispiel an­schau­lich:

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 an­zu­hän­gen­de 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 an­zu­hän­gen­den Listen einen be­lie­bi­gen Datentyp annehmen können. Das ist möglich, weil eine Python-Liste heterogen sein kann, d. h. sie kann Elemente ver­schie­de­ner Da­ten­ty­pen enthalten.

Obwohl extend() am häu­figs­ten benutzt wird, um zwei Listen zu kon­ka­te­nie­ren, gibt es auch andere An­wen­dun­gen dieser Methode, die Sie kennen sollten. Die extend-Methode ak­zep­tiert 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 Dic­tio­n­a­ries. Beim Aufruf von extend() kann irgendein Iterable als Parameter übergeben werden. Die Be­stand­tei­le des Iterables werden der Liste dann einzeln hin­zu­ge­fügt. Diese Ei­gen­schaft wird im folgenden Beispiel ver­deut­licht.

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 Zei­chen­ket­te) als Argument übergeben. Dabei wurden die einzelnen Be­stand­tei­le des Strings (die Zeichen) einzeln der Liste hin­zu­ge­fügt.

Al­ter­na­ti­ven 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 Al­ter­na­ti­ven, die Sie kennen sollten.

Der Additions-Operator

Der Additions-Operator (bzw. das Plus­zei­chen) ist einer der gän­gigs­ten Python-Ope­ra­to­ren und wird meistens zur Addition von zwei Zahlen verwendet. Er kann in Python aber auch zu anderen Zwecken genutzt werden, auch für das Zu­sam­men­fü­gen von Listen. Mit dem Additions-Operator ist es sogar möglich, beliebig viele Listen gleich­zei­tig zu­sam­men­zu­fü­gen. Dies wird im folgenden Beispiel ver­deut­licht:

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 Vor­ge­hens­wei­se fast das gleiche Ergebnis wie extend(), jedoch gibt es einen sehr wichtigen Un­ter­schied. Im Gegensatz zur extend-Methode mo­di­fi­ziert der Additions-Operator keine von den über­ge­be­nen Listen – statt­des­sen wird das Ergebnis als neue Liste zu­rück­ge­ge­ben. Da dafür ein neues Objekt im Speicher angelegt wird, ist der Additions-Operator beim Zu­sam­men­fü­gen zweier Listen etwas in­ef­fi­zi­en­ter als die extend-Methode. Dies sollte be­rück­sich­tigt 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 Kon­ka­te­na­ti­ons-Operator (+=) benutzen, wird keine zu­sätz­li­che Liste erstellt, sondern die ur­sprüng­li­che mo­di­fi­ziert. Dadurch wird der Ef­fi­zi­enz­nach­teil des Additions-Operators umgangen, jedoch funk­tio­nie­ren extend() und += nicht bei allen Iterables gleich.

Die append-Methode

Die append-Methode hat eine ähnliche Funk­ti­ons­wei­se wie extend(), un­ter­schei­det sich aber dadurch, dass sie einer Liste nur ein einzelnes Element hin­zu­fü­gen kann. Ent­spre­chend ist es auch unmöglich, dieser Methode ein Iterable zu übergeben. Das folgende Beispiel dient zur Ver­an­schau­li­chung:

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 hin­zu­zu­fü­gen­de Element nicht in eckigen Klammern angeben muss. Wenn man mit append() al­ler­dings mehrere Elemente der Liste hin­zu­fü­gen möchte, müsste man mit einer Python-For-Loop über eine schon vor­han­de­ne Liste iterieren. Daher ist append() nur sinnvoll, wenn es sich wirklich nur um ein einzelnes Element handelt.

Tipp

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

Zum Hauptmenü