Datenstrukturen in Python – Die Liste

WPF Informatik  ·  Klasse 10  ·  Werner-von-Siemens-Gymnasium Berlin  ·  TigerJython / Python
1

Was ist eine Liste?

Stell dir vor, du möchtest fünf Noten speichern. Mit einzelnen Variablen sieht das so aus:

ohne Liste – umständlich
Klicke ▶, um den Code im Browser auszuführen
– Ausgabe erscheint hier –
📋 Fachkonzept – Liste Eine Liste ist eine geordnete Sammlung beliebig vieler Elemente unter einem einzigen Namen. Elemente können verschiedene Datentypen haben (Zahlen, Strings, …). In Python schreibt man Listen mit eckigen Klammern [ ], Elemente durch Komma getrennt.

Mit einer Liste ist das viel eleganter:

mit Liste – kompakt
– Ausgabe erscheint hier –
💡 Wozu Listen? Listen sind ideal, wenn mehrere zusammengehörende Daten gespeichert werden sollen: Messwerte, Spielerkarten, Einkaufszettel, x-Werte eines Funktionsplots … Ohne Listen wären viele Programme kaum handhabbar.

Eigenschaften auf einen Blick

gemischte Liste – zum Experimentieren
– Ausgabe erscheint hier –
2

Erstellen & Zugriff auf Elemente

Eine Liste erstellen

verschiedene Arten
– Ausgabe erscheint hier –

Indizes – Zugriff auf einzelne Elemente

Jedes Element hat eine feste Position (Index). Der Index beginnt bei 0. Negative Indizes zählen vom Ende.

👉 Klicke auf ein Element, um seinen Index zu sehen:

staedte =
← Klicke auf ein Element der Liste
Index-Zugriff
– Ausgabe erscheint hier –
⚠ Typischer Fehler: IndexError Wenn du einen ungültigen Index verwendest (z. B. staedte[10] bei einer 4-elementigen Liste), gibt Python einen IndexError. Probiere es aus und lies die Fehlermeldung!
Aufgabe A1 Zugriff auf Elemente

temperaturen = [18, 22, 19, 25, 21, 17, 23]  (Mo–So)
Ersetze die ___ so, dass ausgegeben wird: Mittwoch: 19  |  Sonntag: 23  |  Höchste: 25

A1 – hier lösen
– Ausgabe erscheint hier –
3

Listenelemente verändern

Elemente überschreiben
– Ausgabe erscheint hier –

Hinzufügen und entfernen

append / insert / remove / pop
– Ausgabe erscheint hier –

Verketten und wiederholen

Operatoren + und *
– Ausgabe erscheint hier –
Aufgabe A2 Liste bearbeiten

Starte mit freunde = ["Anna", "Ben", "Clara"] und:

  1. Füge "David" am Ende hinzu.
  2. Füge "Eva" an Position 0 ein.
  3. Entferne "Ben".
  4. Gib Liste und Länge aus.

Erwartet: ['Eva', 'Anna', 'Clara', 'David']  |  Länge: 4

A2 – hier lösen
– Ausgabe erscheint hier –
4

Listen durchlaufen

Variante 1: for … in (direkter Zugriff)

for-in-Schleife
– Ausgabe erscheint hier –

Variante 2: for … in range(len(…)) – mit Index

for-in-range – mit Index
– Ausgabe erscheint hier –
💡 Wann welche Variante? for x in liste → wenn du nur lesen willst.
for i in range(len(liste)) → wenn du Elemente verändern oder den Index brauchst.
while-Schleife mit Liste
– Ausgabe erscheint hier –
Aufgabe A3 Maximum finden (ohne max())

Finde das größte Element der Liste mit einer Schleife – ohne max().

A3 – hier lösen
– Ausgabe erscheint hier –
5

Wichtige Listen-Methoden

Methode / FunktionBeschreibungBeispiel
len(liste)Anzahl der Elementelen([1,2,3]) → 3
liste.append(x)x am Ende anhängena.append(5)
liste.insert(i, x)x an Position i einfügena.insert(0,"Z")
liste.remove(x)erstes Vorkommen von x entfernena.remove("Ben")
liste.pop()letztes Element entnehmen & zurückgebenx = a.pop()
liste.pop(i)Element an Position i entnehmenx = a.pop(2)
liste.sort()aufsteigend sortieren (in-place)a.sort()
liste.reverse()Reihenfolge umkehren (in-place)a.reverse()
liste.index(x)Index des ersten Vorkommens von xa.index("Anna")
liste.count(x)Häufigkeit von xa.count(2)
x in listeTrue, wenn x enthalten ist"Ben" in a
min(liste)kleinstes Elementmin([3,1,2]) → 1
max(liste)größtes Elementmax([3,1,2]) → 3
sum(liste)Summe aller Elementesum([1,2,3]) → 6
Methoden – Experimentierfeld
– Ausgabe erscheint hier –
📌 Liste als Objekt – Referenz vs. Kopie Mit b = a zeigen beide Variablen auf dasselbe Objekt im Speicher. Änderungen an b betreffen deshalb auch a! Für eine echte Kopie: b = a[:] oder b = list(a).
Referenz vs. Kopie – wichtig!
– Ausgabe erscheint hier –
6

Übungsaufgaben

B1 ★ Summe und Durchschnitt

Berechne Summe, Anzahl und Durchschnitt nur mit einer Schleife – ohne sum() und len().

B1
– Ausgabe erscheint hier –
B2 ★★ Liste filtern

Erstelle eine neue Liste, die nur die geraden Zahlen enthält. Nutze %.

B2
– Ausgabe erscheint hier –
B3 ★★★ Liste umkehren (ohne reverse())

Kehre die Reihenfolge um – ohne reverse(). Nutze zwei Indizes und eine Hilfsvariable temp.

B3
– Ausgabe erscheint hier –
B4 ★★★ x/y-Werte einer Funktion (Funktionsplot-Vorbereitung)

Erzeuge x-Werte von -5 bis 5 und berechne y-Werte für f(x) = x² − 3.

B4
– Ausgabe erscheint hier –
7

Quiz & Zusammenfassung

Wähle jeweils die richtige Antwort – sofortiges Feedback!

Frage 1 Index-Zugriff
Was gibt ["Mo","Di","Mi","Do","Fr"][2] aus?
"Mo"
"Di"
"Mi"
"Do"
Frage 2 Länge einer Liste
Welche Funktion liefert die Anzahl der Elemente einer Liste a?
a.size()
a.length()
len(a)
count(a)
Frage 3 append()
Nach a = [1,2,3]; a.append(4) – was enthält a?
[4,1,2,3]
[1,2,3,4]
[1,2,3]
Fehler
Frage 4 Negativer Index
Was liefert [10,20,30,40,50][-2]?
10
20
40
50
Frage 5 Referenz vs. Kopie
Nach b = a (beide Listen) – was passiert bei b.append(99)?
Nur b ändert sich.
Auch a enthält 99, da beide auf dasselbe Objekt zeigen.
Es entsteht ein Fehler.
a wird automatisch kopiert.
0/5

Zusammenfassung – das Wichtigste auf einen Blick

📋 Erstellen

a = [1, 2, 3]a = []a = list(range(5))

🔍 Zugriff

a[0] # erstesa[-1] # letztesa[1:3] # Slice

✏️ Verändern

a[i] = xa.append(x)a.insert(i, x)a.remove(x)

🔄 Durchlaufen

for x in a:for i in range(len(a)):

📐 Kennwerte

len(a)min(a) / max(a)sum(a)a.count(x)

🔀 Sortieren

a.sort()a.reverse()a.index(x)x in a
🚀 Weiter in TigerJython Mit Listen und Schleifen kannst du nun echte Funktionsplots zeichnen! Schau dir auf der Schulwebseite das Beispiel „Listen mit TigerJython – Funktionsplot" an.