🧩 Listen - Mehrere Elemente verwalten#
Eine Liste ist eine geordnete Sammlung von Werten. Diese dürfen unterschiedliche Datentypen haben. Mit Listen kann man mehrere Werte in einer Variablen speichern. Die Reihenfolge der Elemente spielt eine Rolle.
namen = ["Anna", "Ben", "Clara"]
zahlen = [1, 2, 3, 4, 5]
gemischt = ["Hallo", 42, True]
🔍 Zugriff auf Elemente#
Zugriff per Index (startet bei 0)
namen = ["Anna", "Ben", "Clara"]
print(namen[0]) # Anna
print(namen[-1]) # Clara (von hinten)
namen[1] = "Benny"
🛠️ Arbeiten mit Listen#
liste.append("Neues Element") # hinzufügen
liste.remove("Wert") # löschen (ersten Treffer)
liste.insert(1, "Wert") # an bestimmter Position einfügen
liste.sort() # sortieren
liste.reverse() # umdrehen
liste.index("Element") # Liefert den (ersten) Index, an dem "Element" steht
liste.count("Element") # Zählt, wie oft "Element" in der Liste vorkommt
len(liste) # liefert Anzahl Elemente in der Liste
"x" in liste # True, falls "x" in der Liste ist
🔢 sum()
– Summe berechnen#
zahlen = [4, 7, 10]
print(sum(zahlen)) # → 21
➡️ Addiert alle Elemente in der Liste
➕ Mit Startwert:#
print(sum(zahlen, 100)) # → 121
📉 min()
– Kleinster Wert#
temperaturen = [18.2, 16.5, 19.0, 14.8]
print(min(temperaturen)) # → 14.8
➡️ Gibt den kleinsten Wert in der Liste zurück
📈 `max()? – Größter Wert#
punkte = [10, 30, 25, 40]
print(max(punkte)) # → 40
➡️ Gibt den größten Wert in der Liste zurück
🧑🏆 Größter Eintrag nach Länge eines Namens:#
namen = ["Anna", "Beate", "Christoph"]
print(max(namen, key=len)) # → Christoph
💡 Kombiniert mit sum() – Durchschnitt berechnen#
zahlen = [3, 4, 5, 6]
durchschnitt = sum(zahlen) / len(zahlen)
print(durchschnitt) # → 4.5
🔁 Über Listen iterieren#
namen = ["Anna", "Ben", "Clara"]
for name in namen:
print("Hallo,", name)
💡 List-Comprehension#
Python erlaubt s.g. List-Comprehension, damit lassen sich Listen sehr ähnlich zur mathematischen Schreibweise definieren.
🧱 Syntax:
[ausdruck for element in iterable if bedingung]
Beispiel 1: Quadrate von Primzahlen
Es sei $\(A = \{2, 3, 5, 7, 11, 13, 17\}\)\( und \)\(B = \{ x^2 | x \in A \}\)$
A = [2, 3, 5, 7, 11, 13, 17]
B = [x**2 for x in primzahlen]
print(B)
[4, 9, 25, 49, 121, 169, 289]
Beispiel 2: Begruessung bestimmter Namen
A = ["Anna", "Beate", "Carla", "Denise", "Erika", "Frauke"]
B = ["Hallo " + name for name in A if len(name) <= 4]
print(B)
["Hallo Anna"]
Beispiel 3: Länge von Wörtern
woerter = ["Hallo", "Python", "Welt"]
laengen = [len(w) for w in woerter]
print(laengen)
Verschachtelte List-Comprehension#
tabelle = [[i * j for j in range(1, 6)] for i in range(1, 6)]
for zeile in tabelle:
print(zeile)
[1, 2, 3, 4, 5]
[2, 4, 6, 8, 10]
[3, 6, 9, 12, 15]
[4, 8, 12, 16, 20]
[5, 10, 15, 20, 25]
✂️ List Slicing#
Mit Slicing kann man Teile einer Liste herausnehmen – ganz ohne Schleifen. Man verwendet dazu eine spezielle Syntax mit Doppelpunkten:
liste[start:stop:step]
Ausdruck |
Bedeutung |
---|---|
liste[:] |
komplette Kopie der Liste |
liste[2:5] |
Elemente von Index 2 bis 4 (5 ist exklusiv) |
liste[:3] |
Elemente von Anfang bis Index 2 |
liste[4:] |
Elemente ab Index 4 bis zum Ende |
liste[::2] |
jedes zweite Element |
liste[::-1] |
Liste rückwärts |
📦 Beispiele:
zahlen = [10, 20, 30, 40, 50, 60, 70]
Slice |
Ergebnis |
Erklärung |
---|---|---|
zahlen[1:4] |
[20, 30, 40] |
von Index 1 bis 3 |
zahlen[:3] |
[10, 20, 30] |
Anfang bis Index 2 |
zahlen[3:] |
[40, 50, 60, 70] |
ab Index 3 bis Ende |
zahlen[::2] |
[10, 30, 50, 70] |
jedes zweite Element |
zahlen[::-1] |
[70, 60, 50, 40, 30, 20, 10] |
umgedreht |
🧪 Übungsaufgaben#
obst = ["Apfel", "Banane", "Kirsche", "Melone", "Birne"]
Gib nur die ersten 3 Früchte aus
Gib die letzten 2 Früchte aus
Gib die Liste rückwärts aus
Überprüfe ob “Tomate” in der Liste ist
🎓 Mini-Projekt#
Schreibe ein kleines Programm welches den Nutzer verschiedene Zahlen eingeben läßt. Füge solange die eingegebenen Zahlen einer Liste hinzu bis der Benutzer “fertig” eingibt. Sobald der Benutzer fertig ist berechne den Median der Liste. Dazu musst Du die Liste zunächst sortieren und dann das mittlere Element herausgreifen. Wenn die Anzahl der Elemente gerade ist musst Du die beiden Elemente links und rechts der Mitte nehmen, addieren und durch zwei teilen.