Stelle dir vor, du möchtest die Namen aller Schüler in deiner Klasse speichern. Du könntest schueler1 = "Anna", schueler2 = "Ben" usw. schreiben — aber das wird sehr unpraktisch. Eine Liste löst dieses Problem: Sie speichert mehrere Werte unter einem einzigen Namen.
Liste erstellen
fruechte = ["Apfel", "Banane", "Kirsche", "Mango"]
noten = [1, 2, 3, 4, 5, 6]
gemischt = [42, "Hallo", True, 3.14] # Verschiedene Typen erlaubt
leere_liste = []
Auf Elemente zugreifen
Wie bei Zeichenketten beginnt der Index bei 0:
fruechte = ["Apfel", "Banane", "Kirsche"]
print(fruechte[0]) # Apfel
print(fruechte[2]) # Kirsche
print(fruechte[-1]) # Kirsche (letztes Element)
Elemente ändern, hinzufügen, entfernen
Anders als Zeichenketten sind Listen veränderlich:
zahlen = [10, 20, 30, 40]
# Element ändern
zahlen[1] = 99
print(zahlen) # [10, 99, 30, 40]
# Element am Ende hinzufügen
zahlen.append(50)
print(zahlen) # [10, 99, 30, 40, 50]
# Element an einer bestimmten Position einfügen
zahlen.insert(2, 77)
print(zahlen) # [10, 99, 77, 30, 40, 50]
# Element entfernen (nach Wert)
zahlen.remove(99)
print(zahlen) # [10, 77, 30, 40, 50]
# Letztes Element entfernen und zurückgeben
letztes = zahlen.pop()
print(letztes) # 50
print(zahlen) # [10, 77, 30, 40]
append() ist die häufigste Methode zum Hinzufügen von Elementen. Sie ist sehr effizient und fügt das Element immer am Ende an. insert() ist langsamer, wenn die Liste groß ist, weil alle nachfolgenden Elemente verschoben werden müssen.
Über Listen iterieren
namen = ["Anna", "Ben", "Clara"]
for name in namen:
print(f"Hallo, {name}!")
Nützliche Listen-Methoden
zahlen = [5, 2, 8, 1, 9, 3]
print(len(zahlen)) # 6 (Anzahl der Elemente)
print(max(zahlen)) # 9 (größter Wert)
print(min(zahlen)) # 1 (kleinster Wert)
print(sum(zahlen)) # 28 (Summe)
print(sorted(zahlen)) # [1, 2, 3, 5, 8, 9] (neue sortierte Liste)
zahlen.sort() # Liste direkt sortieren
print(zahlen) # [1, 2, 3, 5, 8, 9]
zahlen.reverse() # Liste umkehren
print(zahlen) # [9, 8, 5, 3, 2, 1]
print(8 in zahlen) # True (prüfen ob Element vorhanden)
print(zahlen.count(5)) # 1 (wie oft kommt 5 vor)
sorted() erstellt eine neue sortierte Liste und lässt die Original-Liste unverändert. sort() sortiert die Liste direkt und gibt None zurück. Welche du verwendest, hängt davon ab, ob du die ursprüngliche Reihenfolge behalten möchtest.
Listen aus Bereichen erstellen
# list() mit range() kombinieren
gerade = list(range(0, 11, 2))
print(gerade) # [0, 2, 4, 6, 8, 10]
Slicing bei Listen
buchstaben = ["a", "b", "c", "d", "e"]
print(buchstaben[1:4]) # ['b', 'c', 'd']
print(buchstaben[:3]) # ['a', 'b', 'c']
print(buchstaben[2:]) # ['c', 'd', 'e']
Wenn du eine Liste einer neuen Variablen zuweist, kopierst du sie nicht — du erstellst nur einen weiteren Verweis auf dieselbe Liste. Änderungen durch liste2 wirken sich auch auf liste1 aus! Um eine echte Kopie zu erstellen, verwende liste2 = liste1.copy() oder liste2 = liste1[:].
Übungsaufgaben
Was gibt der folgende Code aus? zahlen = [3, 1, 4, 1, 5] / zahlen.append(9) / zahlen.remove(1) / print(len(zahlen))
Antwort anzeigen
Schreibe Python-Code, der eine Liste von Zahlen nimmt und den Durchschnitt berechnet.