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.
farben = ["rot", "gelb", "blau"].farben mit den Einträgen "rot", "gelb" und "blau" entsteht, und gib sie aus.tag1 bis tag4 gegeben. Fasse sie zu einer Liste tage zusammen und gib die Liste aus.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).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].
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.
len(farben) liefert 3 — aber Achtung, der größte gültige Index ist len(farben) - 1, also 2, nicht 3.IndexError — farben hat nur die Indizes 0, 1 und 2. Der größte gültige Index ist immer len(liste) - 1.len() das letzte Element der Liste zahlen aus — ohne die Zahl 5 (die aktuelle Länge) direkt hinzuschreiben.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.Ä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.
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.
liste[index] = wertersetzt ein bestehendes Element — die Länge bleibt gleich.liste.append(wert)ergänzt ein neues Element — die Länge wächst um 1."gruen" geändert wird.append()-Aufrufen "Eier" und "Butter" an die Liste einkaufsliste an und gib sie danach aus.punkte auf 99. Hänge danach mit append() den Wert len(punkte) an. Gib die Liste am Ende aus.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.
Das Akkumulator-Muster aus Block 3 funktioniert genauso über Listen — z. B. um alle Werte aufzusummieren.
summe startet bei 0 und wird in jedem Durchlauf um note erhöht.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.for-Schleife jedes Tier aus der Liste tiere ausgibt.for-Schleife und einem Akkumulator die Summe aller Preise in der Liste preise und gib sie aus.for-Schleife das Maximum der Liste noten — ohne die eingebaute Funktion max() zu benutzen.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.
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.
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.
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.
3 + 5 ergibt 8 (Addition), aber [3] + [5] ergibt [3, 5] (Verkettung) — nicht [8]."gelb" in der Liste farben enthalten ist."gelb" aus der Liste farben — aber nur, wenn es enthalten ist. Gib die Liste danach aus.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.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).
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).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.