Python Lists werden dafür genutzt mehrere Elemente in einer einzigen Variable zu speichern. Sie sind eine von insgesamt vier Datenstrukturen, die bei Python bereits vorinstalliert sind. Neben der Liste zählen dazu auch die Tuple, das Set und das Dictionary.
Eine Python List definieren wir, indem wir die Elemente in eckigen Klammern schreiben. Wir können in einer Liste Elemente mit unterschiedlichen Datentypen speichern. Eine zweite Möglichkeit zur Erstellung von Listen ist durch Aufruf des „list()“ Befehls. Dazu müssen die Elemente in doppelten, runden Klammern geschrieben sein. Diese Schreibweise wird jedoch eher selten genutzt.

Wie kann man Listenelemente abrufen?
Die Elemente einer Python List haben einen Index, der für jedes Element die Reihenfolge festlegt. Die einzelnen Elemente einer Liste können über ihren entsprechenden Index aufgerufen werden. Hierbei muss natürlich beachtet werden, dass unser Computer bei 0 anfängt zu zählen. Das erste Elemente der Liste hat also den Index 0. Eine Liste in Python hat dabei immer nur numerische Indizes, die bei Null starten. Diese können auch nicht verändert werden und beispielsweise durch Indizes in Textform ersetzt werden.

Über den Index ist es auch möglich das letzte Element der Liste aufzurufen, ohne die Länge der Liste zu kennen und somit den konkreten Index. Mithilfe des negativen Index können wir Objekte aus der Liste von hinten beginnend aufrufen. Bei dieser Zählweise beginnen wir wiederum bei 1 und nicht bei 0.

Wenn wir nicht nur einzelne Elemente der Liste abfragen wollen, sondern einen kompletten Bereich, können wir diesen definieren, indem wir den Anfangs- und Endindex angeben. Dabei ist zu beachten, dass der Anfangsindex Teil der Ausgabe ist, der Endindex hingegen nicht.

Auffallend ist hierbei, dass die Abfrage eines Listenbereichs immer eine Liste als Ergebnis liefert, auch wenn die Python List nur ein Element hat.
Diese Abfrage lässt sich auch ohne Angabe des Endindex ausführen. Hierfür gibt es zwei Möglichkeiten:

Bei der ersten Möglichkeit steht in eckigen Klammern der Anfangsindex und dann ein Doppelpunkt. In unserem Beispiel liefert dies das zweite Element und alle anderen Elemente der Liste, die nach dem zweiten Element kommen, egal wie viele Elemente noch folgen, also „Tokyo“, „Montreal“ und „Berlin“
Bei der zweiten Variante steht in eckigen Klammern zuerst ein Doppelpunkt und dann der Anfangsindex. In diesem Fall erhalten wir aus der Python List alle Elemente, die vor dem dritten Element der Liste stehen, also „New York“ und „Tokyo“.
Als Hilfestellung für diese Abfragearten kann man folgenden, kleinen Algorithmus verwenden:
- Setze den Cursor vor(!) das Element, das durch die Zahl definiert wird.
- Wenn der Doppelpunkt hinter der Zahl steht, also rechts daneben, dann besteht das Ergebnis aus einer Liste mit allen Elementen, die rechts vom Cursor stehen. Wenn der Doppelpunkt vor der Zahl steht, also links daneben, dann besteht das Ergebnis aus einer Liste mit allen Elementen, die links vom Cursor stehen.
Für unsere erste Abfrage „list_1[1:]“ setzen wir den Cursor vor das zweite Element, also vor „Tokyo“. Da der Doppelpunkt rechts von der 1 steht, müssen wir im Ergebnis alle Elemente nutzen, die rechts vom Cursor steht. Somit besteht das Ergebnis aus einer Python List mit den Elementen „Tokyo“, „Montreal“ und „Berlin“.
Wie kann man Listenelemente ändern?
Wenn wir einzelne oder mehrere Elemente einer Python List ändern wollen, rufen wir sie wie oben beschrieben haben auf und definieren, deren Wert einfach neu.

Gleichzeitig können wir ein Element auch mit der „insert()“ Methode an einer beliebigen Stelle der Liste einfügen, ohne dass wir dabei einen bestehenden Eintrag ändern. Der Index der folgenden Werte erhöht sich entsprechend um 1. Wenn wir einfach an das Ende der Liste ein Element anhängen wollen, können wir das mit der „append()“ Methode tun.

Natürlich können wir auch Werte aus einer Python List entfernen anstatt sie zu überschreiben. Dazu gibt es die Methoden „pop()“ und „remove()“. Der Unterschied zwischen den Methoden ist, dass „pop()“ den Index als Eingabe nutzt und „remove()“ das konkrete Element.

Wie können Elemente in einer Liste sortiert werden?
Obwohl die Elemente in der Liste sortiert sind, kann man sie alphabetisch oder numerisch sortieren. Dadurch ändert sich jedoch ihr Index, also die Anordnung innerhalb der Liste:

Die Anordnung in einer Python Liste lässt sich auch umdrehen, also dass von Z nach A bzw. von großer Zahl zu kleiner Zahl sortiert wird. Dazu benötigt man lediglich den zusätzlichen Parameter „reverse = True“:

Der Sortieralgorithmus funktioniert jedoch nur, wenn die Python Liste aus Daten mit einem einheitlichen Datentyp besteht. Eine Mischung aus Zahlen und Strings führt zu einem sogenannten „TypeError“:

Was sind die Unterschiede zwischen NumPy Arrays und Python Lists?
Je nach Quelle gibt es mehrere, grundlegende Unterschiede zwischen NumPy Arrays und Python Lists. Zu den am häufigsten genannten gehören:
- Speicherverbrauch: Arrays sind so programmiert, dass sie einen gewissen Teil im Speicher für sich beanspruchen. Dort liegen dann alle Elemente des Arrays. Die Elemente einer Liste können hingegen weit im Speicher voneinander entfernt sein. Dadurch verbraucht eine Liste mehr Speicher als das identische Array.
- Geschwindigkeit: Auch aufgrund des geringeren Speicherverbrauchs können Arrays deutlich schneller verarbeitet werden als Listen. Das kann bei Objekten mit mehreren Millionen Elementen einen signifikanten Unterschied machen.
- Funktionalitäten: Arrays bieten deutlich mehr Funktionalitäten, beispielsweise ermöglichen sie elementweise Operationen, während Listen das nicht unterstützen.

Wie kann man mit verschachtelten Listen arbeiten, also mit Listen aus Listen?
In Python ist eine verschachtelte Liste eine Liste, die andere Listen als ihre Elemente enthält. Verschachtelte Listen sind eine leistungsstarke Möglichkeit, strukturierte Daten wie Matrizen, Tabellen oder hierarchische Daten darzustellen und zu verarbeiten. In diesem Abschnitt werden wir erkunden, wie Du verschachtelte Listen erstellst, auf sie zugreifst und mit Codebeispielen manipulierst.
Erstellen von Verschachtelten Listen
Das Erstellen einer verschachtelten Liste ist so einfach wie das Platzieren von einer oder mehreren Listen innerhalb einer anderen Liste. Hier ist, wie Du eine grundlegende verschachtelte Liste erstellen kannst:

Dies erstellt eine 2D-Liste oder eine Matrix.
Zugriff auf Elemente in Verschachtelten Listen
Um auf ein bestimmtes Element in einer verschachtelten Liste zuzugreifen, kannst Du mehrere eckige Klammern verwenden, um die Ebenen der Verschachtelung zu durchlaufen. Um zum Beispiel das Element 5
in unserer nested_list
abzurufen, würdest Du Folgendes verwenden:

Das Durchlaufen einer verschachtelten Liste erfordert oft verschachtelte Schleifen. Du kannst eine for
-Schleife in einer anderen for
-Schleife verwenden, um durch jedes Element zu iterieren. Hier ist ein Beispiel, das alle Elemente in der nested_list
ausgibt:

Ändern von Verschachtelten Listen
Du kannst die Werte in einer verschachtelten Liste genauso ändern wie in einer normalen Liste. Zum Beispiel, um die 6
in nested_list
in 60
zu ändern:

Du kannst ganze Unterlisten zu einer verschachtelten Liste hinzufügen oder daraus entfernen. Um eine neue Unterliste am Ende hinzuzufügen:

Um eine Unterliste zu entfernen:

List Comprehensions mit Verschachtelten Listen
List Comprehensions können verwendet werden, um Operationen auf jedem Element in einer verschachtelten Liste auszuführen. Zum Beispiel erstellen wir eine neue verschachtelte Liste, in der jedes Element quadriert wird:

Praktisches Beispiel: Matrix-Transposition
Die Matrix-Transposition ist eine häufige Operation bei verschachtelten Listen. Sie vertauscht die Zeilen und Spalten einer Matrix. Hier ist eine Python-Funktion, um eine verschachtelte Liste zu transponieren:

Dieser Code nimmt eine verschachtelte Liste als Eingabe und gibt ihre Transposition zurück.
Das Arbeiten mit verschachtelten Listen ist entscheidend, um strukturierte Daten effektiv in Python zu handhaben. Egal, ob Du es mit Matrizen, Tabellen oder komplexeren hierarchischen Daten zu tun hast, das Verständnis dafür, wie man verschachtelte Listen erstellt, darauf zugreift und sie manipuliert, ist eine wertvolle Fähigkeit für die Datenmanipulation und -analyse.
Was unterscheidet eine Pandas Series von einer Python List?
An diesem Punkt des Beitrags könnte man den Eindruck gewonnen haben, dass die Pandas Series und die Python List zwei sehr ähnliche Datenstrukturen sind, deren Hauptunterschied ist, dass die Liste lediglich numerische Indizes verwenden kann, während die Pandas Series auch textuelle Indizes zulässt.
Die Hauptunterscheidung zwischen der Series under Liste besteht nicht in dessen Funktionalitäten oder Aufbau, sondern in den Anwendungsmöglichkeiten. Die Series wird im Bereich der Data Science vor allem als Vorstufe für tabellarische Daten genutzt, die wiederum in Diagrammen veranschaulicht werden sollen. Das heißt die Series ist konkret einsehbar.
Die Liste hingegen wird zur Zwischenspeicherung von komplexen Datenstrukturen genutzt, hält sich also eher im Hintergrund und dient als Hilfsmittel für komplexe Berechnungen. Die Hauptunterschiede bestehen vor allem darin:
- Homogenität: Eine Pandas-Reihe erfordert, dass alle Datenelemente vom gleichen Datentyp sind, während eine Python-Liste Elemente unterschiedlicher Datentypen enthalten kann.
- Speichereffizienz: Pandas-Serien sind speichereffizienter als Python-Listen, da sie intern NumPy-Arrays verwenden, die kompakter und schneller für numerische Berechnungen sind.
- Vektorisierung: Die Pandas-Reihe unterstützt vektorisierte Operationen, die es uns ermöglichen, Berechnungen auf ganzen Sequenzen von Daten auf einmal durchzuführen, wodurch die Datenverarbeitung schneller und effizienter wird. Python-Listen hingegen unterstützen keine vektorisierten Operationen.
Welche Python Sammlungen gibt es?
In Python gibt es insgesamt vier Datentypen, die standardmäßig hinterlegt sind:
- Die Liste ist eine geordnete Sammlung von Elementen, die änderbar ist und auch doppelte Elemente enthalten kann.
- Das Tuple ist im Endeffekt eine Liste, mit dem Unterschied, dass es nicht mehr änderbar ist. Es können also keine Elemente mehr nachträglich hinzugefügt oder entfernt werden.
- Das Set lässt keine doppelten Einträge zu. Gleichzeitig ist die Anordnung der Elemente innerhalb des Sets variabel. Das Set an sich kann verändert werden, aber die einzelnen Elemente können nicht nachträglich geändert werden.
- Ein Dictionary ist seit der Python Version 3.7 eine geordnete Sammlung von Schlüssel-Wert Paaren, die änderbar ist. In den früheren Versionen ist das Dictionary ungeordnet.
Das solltest Du mitnehmen
- Python Lists können genutzt werden, um eine Sammlung von Elementen in einer Python Variablen zu speichern.
- Die Liste ist geordnet und kann mithilfe von Befehlen geändert werden.
Vielen Dank an Deepnote für das Sponsoring dieses Artikels! Deepnote bietet mir die Möglichkeit, Python-Code einfach und schnell auf dieser Website einzubetten und auch die zugehörigen Notebooks in der Cloud zu hosten.
Andere Beiträge zum Thema Python Lists
- w3schools bietet ausführliche Beispiele zu Python Lists mit der Möglichkeit auch online Codeschnipsel direkt ausführen zu können.