Python · Klasse 8 · Block 4

Listen

Fünf Variablen für fünf Noten anzulegen ist mühsam — und bei 30 Werten unübersichtlich. Eine Liste bündelt mehrere Werte in einer einzigen Variablen und macht sie mit for element in liste aus Block 3 erst richtig nutzbar.

Alle Codebeispiele laufen direkt im Browser. Mit 📋 Kopieren kannst du den Code in Thonny einfügen und dort ausführen.

Thema 01

Warum Listen?

Mehrere zusammengehörige Werte lassen sich in einzelnen Variablen speichern — aber das wird schnell unübersichtlich.

Eine Liste bündelt mehrere Werte in einer einzigen Variablen — in eckigen Klammern, durch Kommas getrennt. Die Reihenfolge der Werte bleibt dabei erhalten.

Einzelne Variablen
💡 Bei 5 Noten geht das noch. Aber was, wenn die ganze Klasse mit 30 Noten erfasst werden soll?
Fertiges Beispiel — Liste anlegen
💡 Eine einzige Variable enthält jetzt alle fünf Werte — in der richtigen Reihenfolge. Das funktioniert genauso mit Texten, z. B. farben = ["rot", "gelb", "blau"].
Leicht
Fülle die Lücke, sodass eine Liste farben mit den Einträgen "rot", "gelb" und "blau" entsteht, und gib sie aus.
Mittel
Vier Wochentage sind bereits als Variablen tag1 bis tag4 gegeben. Fasse sie zu einer Liste tage zusammen und gib die Liste aus.
Anspruchsvoll
Sechs Messwerte sind bereits als Variablen statistik1 bis statistik6 gegeben. Erstelle daraus eine Liste werte, gib sie aus, und gib danach die Meldung "Die Liste enthält 6 Werte." aus (Textverknüpfung mit str() aus Block 1).
Thema 02

Zugriff per Index

Eine Liste kann als Ganzes ausgegeben werden — aber oft braucht man nur ein einzelnes Element daraus.

Jedes Element einer Liste hat eine Position, den Index. Die Zählung beginnt bei 0, nicht bei 1 — das erste Element ist also liste[0].

Fertiges Beispiel — Index-Zugriff
💡 farben[0] ist das erste Element, nicht farben[1]. Das ist die häufigste Stolperstelle bei Listen.

Mit len(liste) bekommst du die Anzahl der Elemente — praktisch, wenn du sie nicht auswendig kennst oder die Liste sich noch ändert.

Fertiges Beispiel — len()
💡 len(farben) liefert 3 — aber Achtung, der größte gültige Index ist len(farben) - 1, also 2, nicht 3.
Ungültiger Index
💡 IndexErrorfarben hat nur die Indizes 0, 1 und 2. Der größte gültige Index ist immer len(liste) - 1.
Leicht
Fülle die Lücke, sodass das zweite Element (Index 1) der Liste ausgegeben wird.
Mittel
Gib mit Hilfe von len() das letzte Element der Liste zahlen aus — ohne die Zahl 5 (die aktuelle Länge) direkt hinzuschreiben.
Anspruchsvoll
Die Liste namen hat 7 Einträge. Berechne mit len() den größten gültigen Index und gib ihn aus. Gib danach mit diesem Index das letzte Element aus.
Thema 03

Ändern & Anhängen

Listen bleiben nicht starr — einzelne Elemente lassen sich ändern, neue Elemente lassen sich ergänzen.

Der Index, den du zum Lesen nutzt, funktioniert auch zum Schreiben: liste[index] = neuer_wert ersetzt das Element an dieser Stelle.

Fertiges Beispiel — Element ändern
💡 Die Liste bleibt gleich lang — nur der Wert an Index 1 wird ersetzt.

Mit liste.append(wert) hängst du ein neues Element ans Ende an — die Liste wird dabei länger. Das ist die erste Methode (Punktnotation), die du siehst.

Fertiges Beispiel — append()
💡
Ändernliste[index] = wertersetzt ein bestehendes Element — die Länge bleibt gleich.
Anhängenliste.append(wert)ergänzt ein neues Element — die Länge wächst um 1.
Leicht
Fülle die Lücke, sodass das zweite Element (Index 1) auf "gruen" geändert wird.
Mittel
Hänge mit zwei append()-Aufrufen "Eier" und "Butter" an die Liste einkaufsliste an und gib sie danach aus.
Anspruchsvoll
Ändere das dritte Element (Index 2) der Liste punkte auf 99. Hänge danach mit append() den Wert len(punkte) an. Gib die Liste am Ende aus.
Thema 04

for-Schleife über Listen

In Block 3 lief for i in range(...) über Zahlen. Genauso kann for direkt über eine Liste laufen — ganz ohne Index.

for element in liste: nimmt nacheinander jeden Wert der Liste an — kein Index nötig. element heißt dabei so, wie du es nennst.

Fertiges Beispiel — for über Liste
💡 Egal ob 5, 30 oder 200 Noten in der Liste stehen — der Code bleibt identisch. Das war mit einzelnen Variablen (Thema 01) gar nicht möglich.

Das Akkumulator-Muster aus Block 3 funktioniert genauso über Listen — z. B. um alle Werte aufzusummieren.

Fertiges Beispiel — Akkumulator
💡 summe startet bei 0 und wird in jedem Durchlauf um note erhöht.
Fertiges Beispiel — Maximum finden
💡 maximum startet beim ersten Element und wird ersetzt, sobald ein größerer Wert gefunden wird. Python bringt dafür übrigens auch fertige Funktionen mit — max(noten) und min(noten) liefern dasselbe Ergebnis direkt.
Leicht
Fülle die Lücke, sodass eine for-Schleife jedes Tier aus der Liste tiere ausgibt.
Mittel
Berechne mit einer for-Schleife und einem Akkumulator die Summe aller Preise in der Liste preise und gib sie aus.
Anspruchsvoll
Finde mit einer for-Schleife das Maximum der Liste noten — ohne die eingebaute Funktion max() zu benutzen.
Thema 05

Prüfen, Entfernen & Verbinden

Weitere Operationen, die im Alltag mit Listen ständig gebraucht werden: prüfen, ob ein Wert vorkommt, ihn entfernen, und zwei Listen zusammenführen.

Mit wert in liste prüfst du, ob ein Wert in der Liste enthalten ist — das Ergebnis ist True oder False, genau wie bei den Bedingungen aus Block 2.

Fertiges Beispiel — in-Operator
💡 in lässt sich direkt mit if kombinieren: if "gelb" in farben:

liste.remove(wert) entfernt den ersten Treffer eines Wertes — anders als beim Ändern (Thema 03) suchst du hier nach dem Wert, nicht nach dem Index.

Fertiges Beispiel — remove()
💡 Ist der Wert nicht in der Liste enthalten, wirft remove() einen ValueError. Deshalb lohnt sich der in-Check davor.

liste.pop() entfernt standardmäßig das letzte Element — und gibt es dabei zurück, sodass du es weiterverwenden kannst.

Fertiges Beispiel — pop()
💡
remove(wert)sucht nach einem Wert — du weißt vorher, was entfernt wird.
pop()entfernt das letzte Element und gibt dir den Wert zurück — praktisch, wenn du ihn danach noch brauchst.

Mit + lassen sich zwei Listen zu einer neuen verbinden — anders als bei Zahlen wird dabei nicht addiert, sondern aneinandergehängt.

Fertiges Beispiel — Listen verbinden
💡 3 + 5 ergibt 8 (Addition), aber [3] + [5] ergibt [3, 5] (Verkettung) — nicht [8].
Leicht
Fülle die Lücke, sodass geprüft wird, ob "gelb" in der Liste farben enthalten ist.
Mittel
Entferne "gelb" aus der Liste farben — aber nur, wenn es enthalten ist. Gib die Liste danach aus.
Anspruchsvoll
Entferne mit pop() das letzte Element aus gruppe2 und speichere es in entfernt. Verbinde danach gruppe1 mit der verbleibenden gruppe2 zu alle. Gib alle und entfernt aus.
🏆 Abschlussprojekt

Notenverwaltung

Kombiniere alles aus diesem Block: Liste anlegen, Index & len(), Ändern & append(), for-Schleife mit Akkumulator und Maximum, sowie in, pop() und +.

Die Notenliste

Eine Klasse führt eine Liste mit Noten für eine Arbeit: noten = [14, 9, 12, 15, 8] (bereits gegeben).

Teil A · Anspruchsvoll
Die zweite Note (Index 1) wurde falsch eingetragen — korrigiere sie auf 11. Ein Schüler hat nachträglich abgegeben — hänge die Note 13 mit append() an. Gib am Ende die vollständige Liste aus, danach die Meldung "Anzahl Noten: " zusammen mit len(noten).
Teil B · Anspruchsvoll
Ausgehend von der korrigierten Liste noten = [14, 11, 12, 15, 8, 13] und einer zweiten Notenliste noten_zweite = [10, 13] (beide bereits gegeben): Berechne mit einer for-Schleife und einem Akkumulator den Durchschnitt ("Durchschnitt: " + Wert). Finde mit einer for-Schleife die beste Note ("Beste Note: " + Wert). Prüfe, ob die ursprüngliche Note 9 noch in noten enthalten ist, und gib das Ergebnis aus. Verbinde noten und noten_zweite zu alle_noten und gib die Liste aus.
Quiz

Teste dein Wissen

Sechs Fragen zu Listen, Index und Listenoperationen.

Frage 1 / 6
Welchen Index hat das erste Element einer Liste?
Frage 2 / 6
Eine Liste hat 5 Elemente. Was gibt len(liste) zurück, und was ist der größte gültige Index?
Frage 3 / 6
Was ist der Unterschied zwischen liste[0] = "neu" und liste.append("neu")?
Frage 4 / 6
Was ist der Vorteil von for element in liste: gegenüber for i in range(len(liste)):?
Frage 5 / 6
Was gibt "blau" in farben zurück, wenn "blau" nicht in der Liste farben enthalten ist?
Frage 6 / 6
Was ist der Unterschied zwischen liste.remove(wert) und liste.pop()?
0/6
Reflexion

Zum Nachdenken

„Ab wie vielen zusammengehörigen Werten lohnt sich für euch eine Liste gegenüber einzelnen Variablen — ab 3, ab 10, oder immer?"

Diskutiert in der Klasse: Wo begegnen euch im Alltag „Listen" mit denselben Operationen — hinzufügen, entfernen, prüfen ob etwas enthalten ist? (z. B. Einkaufsliste, Playlist, Warteschlange)