Python-Basics: Erfolgreich arbeiten mit Listen!

Das geordnete Abspeichern von Inhalten ist das A & O jeder Programmiersprache. Wer sich im Bereich Programmierung oder Scripting etwas auskennt, sollte schon mal den Begriff Array gehört haben. In Python gibt es so etwas Ähnliches. Dort spricht man dann aber von den sogenannten Listen.

Sie stellen einen Stapelspeicher dar, der vielen meiner Leser eher unter dem englischen Begriff Stack bekannt sein sollte. Listen in Python ermöglichen es einem, als Programmierer größere Datenmengen zu verarbeiten. Es können beispielsweise einzelne Elemente anhand des Index ausgegeben werden oder neue Werte in die Liste eingelesen werden.

Doch wie genau funktioniert dieser zentrale Objekttyp in Python, wie flexibel kann man damit arbeiten und wie performant ist diese Methode beim Ablegen von komplexen Informationen? Dies sind nur einige spannende Fragen, welche im Folgenden beantwortet werden. Das Hauptthema dieses Artikels ist aber die praktische Arbeiten mit Listen in Python.

Was sind Listen in Python genau?

Bei einer Liste handelt es sich um eine Verkettung von Objekt- bzw. Datentypen. Oftmals hört man in diesem Zusammenhang auch den Begriff Container. Schließlich kann man in Listen alles nur erdenkliche wie beispielsweise Strings, Integer oder Floats einlesen. In diesem Zusammenhang sollte man allerdings wissen, dass homogene Listen nur Daten oder Objekte eines Typs enthalten.

Heterogene Listen hingegen sind mit unterschiedlichen Daten- oder Objekttypen ausgestattet. Weiterhin können Listen sehr komplex werden. Man kann sie nämlich ineinander verschachteln. Das bedeutet konkret, dass in einer Liste wiederum andere Liste enthalten sein können. Aber keine Sorge, so weit werden wir es heute nicht treiben.

Für dieses Tutorial brauchst du so gut wie keine Programmierkenntnisse in Python oder anderen Sprachen zu haben. Du musst lediglich verstanden haben, dass in einer Liste mehrere unterschiedliche Daten- oder Objekttypen vorhanden sein können. Und dass du diese jederzeit ausgeben oder anderweitig verarbeiten kannst. Das reicht auf jeden Fall für den Anfang.

Wie werden diese Listen konkret erstellt?

Die Syntax von Listen in Python ist recht einfach. Du brauchst hierfür nur eckige Klammern zu verwenden. Selbstredend musst du auch einen Namen vergeben. Ansonsten wäre eine Ausgabe recht schwierig, oder?

# Leere Liste 
Studenten = []

# Homogene Liste mit Strings
Studenten = ["Michael", "Elena", "Georg"]

# Homogene Liste mit Zahlen
Studenten_alter = [24, 18, 29]

# Homogene Liste mit Floats
Studenten_alter = [24.5, 18.6, 29.2]

# Heterogene Liste
Container_liste = ["Tom", 24, 18]

# Verschachtelte Liste
Liste_verschachtelt = ["Tom", [24, 18, 29], "Elena"]
Wie lassen sich Inhalte ausgeben?

Wie man es in Python gewohnt ist, lassen sich die Inhalte einer Liste mittels print() ausgeben. Dabei musst du auf zwei Besonderheiten achten. Man fängt nämlich mit 0 an zu zählen und damit trägt der erste Wert der Liste immer die Indexnummer 0. Möchte man hingegen das letzte Listenelement ausgeben, braucht man die -1. Hier fängt man also mit -1 an.

Verwirrend, oder? Deshalb habe im Folgenden noch ein paar Beispiele aufgelistet, damit du dir das Ganze besser vorstellen kannst.

# Liste vollständig ausgeben
print(Studenten)

# Zweiten Listeninhalt ausgeben
print(Studenten[1])

# Letzten Listeninhalt ausgeben
print(Studenten[-1])
Wie können Listen in Python erweitert werden?

Das Aufnehmen weiterer Daten- oder Objekttypen in Listen ist eine häufige Aufgabe und zaubert so manchem gestandenen Programmierer ein müdes Lächeln ins Gesicht. Gerade in Python ist die Syntax recht simpel. Man braucht gerade mal ein Plus-Zeichen, und das war es auch schon:

# Bestehende Liste vor der Erweiterung
Studenten = ["Michael", "Elena", "Georg"]

# Hinzufügen eines weiteren Namens
Studenten += ["Heiko"]

# Ausgabe der Liste zur Kontrolle
print(Studenten)

Allerdings können Listen noch mit einer Python-Funktion erweitert werden. Mithilfe von append können neue Werte an die bestehende Liste angehängt werden. Die Syntax lautet hierfür listenname.append(„neuer Wert“) In unserem Fall schaut das Ganze dann so aus:

# Bestehende Liste vor der Erweiterung
Studenten = ["Michael", "Elena", "Georg"]

# Hinzufügen eines weiteren Namens
Studenten.append("Heiko")

# Ausgabe der Liste zur Kontrolle
print(Studenten)

Soll mehr als nur ein Wert an die Liste angehängt werden, brauchst du stattdessen die Methode listenname.extend(). Ein Beispiel hierfür wäre wie folgt dargestellt:

# Bestehende Liste vor der Erweiterung
Studenten = ["Michael", "Elena", "Georg"]

# Hinzufügen mehrerer Namen
Studenten.extend("Heiko", "Marvin", "Angelika")

# Ausgabe der Liste zur Kontrolle
print(Studenten)
Wie können Listenelemente überschrieben werden?

Nicht selten möchte man bestehende Inhalte überschreiben. So könnte beispielsweise aus dem Studenten Michael eine Michaela geworden sein. Zum Glück können wir in so einem Fall mithilfe der Indexnummer den Vornamen im Handumdrehen ändern.

# Bestehende Liste vor der Änderung
Studenten = ["Michael", "Elena", "Georg"]

# Ersetzen des Namens an Indexpostion 0
Studenten[0] = "Michaela"

# Ausgabe der Liste zur Kontrolle
print(Studenten)
Wie kann man mehrere Elemente ausgeben?

Wie man einzelne Werte aus Listen in Python ausgibt, haben wir bereits besprochen. Der Index kann aber nicht nur einzeln angesprochen werden. Man kann auch die Werte 0 bis 1 ausgeben. Die Syntax dafür ist denkbar einfach und erfordert lediglich den Doppelpunkt. Was damit genau gemeint ist, steht hier:

# Bestehende Liste
Studenten = ["Michael", "Elena", "Georg"]

# Ausgabe des 1. und 2. Wertes
print(Studenten[0:1])
Wie kann der Inhalt einer Liste gelöscht werden?

Manchmal muss eine ganze Liste mit neuem Inhalt aufgebaut werden. Dies ist bei mir zwar nicht häufig der Fall, aber ein paar sinnvolle Anwendungsszenarien gibt es natürlich. Wie die Syntax hierfür lautet, erfährst du nun:

# Bestehende Liste mit Inhalt
Studenten = ["Michael", "Elena", "Georg"]

# Alle Listenelemente werden entfernt
Studenten.clear()

# Kontrolle, ob noch Inhalte vorhanden sind
print(Studenten)

Nicht immer möchte man den kompletten Inhalt einer Liste für immer Lebewohl sagen müsse. Selbstredend kann man auch bestimmte Inhalte aus einer Liste entfernen. Dafür muss man die obige Syntax nur minimal abändern:

# Bestehende Liste mit Inhalt
Studenten = ["Michael", "Elena", "Georg"]

# Wert 2, also Georg, aus der Liste entfernen
del Studenten[2]
Wie lassen sich Listen komplett löschen?

Das Löschen von ganzen Listen ist bei mir etwas ganz Seltenes. Aber manchmal kommt es schon vor. Wenn ich zum Beispiel im nachfolgenden Code die Liste nicht mehr benötige, dann schiebe ich sie manchmal nach /dev/null. Linuxer verstehen an dieser Stelle sicherlich meinen Humor.

# Löschen der Liste in Python
del Studenten
Wie lässt sich die Anzahl der Inhalte ermitteln?

Manchmal kommt es vor, dass man die Anzahl der vorhandenen Elemente innerhalb der Liste ermitteln muss. In Python geht das überraschend einfach. Man muss lediglich folgendes Kommando ausführen:

# Ermittlung der Anzahl an Werten
print(len(Studenten))
Welche weiteren Möglichkeiten gibt es noch?

Python ist eine mächtige Programmiersprache. Und das nicht zuletzt aufgrund der zahlreichen Methoden, die sich in Kombination mit Listen verwenden lassen. Mit der Syntax listenname.methodenname() kann man auf ein großes Repertoire an Spezialoperationen zurückgreifen. Welche es da so gibt, kannst du dieser Auflistung entnehmen:

MethodenbezeichnungErläuterung
append()Weiteres Element ans Ende anhängen
extend()Alle Inhalte werden zu einer anderen Listen hinzugefügt
insert()Hiermit lässt sich am festgelegten Indexpunkt ein weiteres Element einfügen
remove()Hiermit kann ein Elemente aus der Liste entfernt werden
pop()Ein Inhalt wird am angegeben Indexpunkt entfernt und das Ganze wird zurückgegeben
index()Damit lässt sich der Indexwert des ersten übereinstimmenden Elements herausfinden
clear()Wie der Name es schon verrät, ist diese Liste nach dem Einsatz leer
count()Hiermit wird die Anzahl der als Argument übergebene Elemente errechnet
sort()Die Sortierung gelingt hiermit in aufsteigender Reihenfolge
reverse()Die Reihenfolge wird umgekehrt
copy()Die Inhalte werden als einfache Kopie zurück gegeben

Von Fabian Wüst

Er ist leidenschaftlicher Open-Source-Benutzer und ein begeisterter Technologie-Enthusiast. Als kreativer Kopf hinter Homelabtopia bringt Fabian hier seine umfangreiche Erfahrung als Linux-Admin ein. Um sicherzustellen, dass du aus seinen Beiträgen den größtmöglichen Nutzen ziehen kannst, führt er ausgiebige Tests durch und errichtet dafür immense Setups.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert