Lektion 5 von 35Python
Python · Lektion 5 · 25 Minuten
Listen – viele Werte auf einmal
Das lernst du
- Listen anlegen und über die Position (Index) zugreifen
- Elemente anhängen, ändern und zählen
- Mit
sum(),max()und einer Schleife Listen auswerten
Eine Kiste mit Fächern
Bisher hatte jede Variable genau einen Wert. Eine Liste speichert viele Werte in einer festen Reihenfolge. Du schreibst sie in eckige Klammern, getrennt durch Kommas:
freunde = ["Mia", "Ben", "Lea", "Tom"]
print(freunde)
print(len(freunde))len() zählt, wie viele Elemente in der Liste sind.
Auf einzelne Elemente zugreifen
Jedes Element hat eine Position, den Index. Achtung: Python fängt bei 0 an zu zählen!
| Index | 0 | 1 | 2 | 3 |
|---|---|---|---|---|
| Wert | “Mia” | “Ben” | “Lea” | “Tom” |
freunde = ["Mia", "Ben", "Lea", "Tom"]
print(freunde[0])
print(freunde[2])
print(freunde[-1])Mit [-1] bekommst du das letzte Element – praktisch, wenn du nicht weißt, wie lang die Liste ist.
Listen verändern
Listen sind veränderbar: Du kannst Elemente anhängen, austauschen und entfernen. Drück auf Schritte und beobachte die Liste im Speicher:
rucksack = ["Trinkflasche", "Brot"]
rucksack.append("Apfel")
rucksack[0] = "Wasserflasche"
rucksack.remove("Brot")
print(rucksack)
print("Apfel" in rucksack)Mit in prüfst du, ob etwas in der Liste steckt. Das Ergebnis ist True oder False.
Listen auswerten
Für Zahlenlisten hat Python fertige Werkzeuge: sum() addiert alles, max() und min() finden den größten und kleinsten Wert. Und mit for gehst du jedes Element einzeln durch:
temperaturen = [18, 21, 25, 19, 23]
print(f"Wärmster Tag: {max(temperaturen)} Grad")
print(f"Summe: {sum(temperaturen)}")
for t in temperaturen:
if t >= 20:
print(f"{t} Grad – T-Shirt-Wetter")Merke: Der erste Index ist 0, der letzte ist
len(liste) - 1. Wenn duliste[len(liste)]schreibst, bekommst du einenIndexError.
Kurz-Check
Bevor es an die Aufgabe geht: Was gibt dieses Programm aus? Tipp deine Vermutung ein – Python rechnet danach nach.
tiere = ["Hund", "Katze", "Maus"]
tiere.append("Igel")
print(tiere[1], len(tiere))Deine Aufgabe
Jetzt bist du dran
In der Liste punkte stehen die Ergebnisse eines Spiels. Gib drei Zeilen aus: Höchste Punktzahl: 19, Durchschnitt: 11.2 (auf eine Nachkommastelle gerundet, mit round(wert, 1)) und Über 10 Punkte: 3 (wie viele Werte größer als 10 sind). Rechne alles mit Python aus – die Zahlen nicht selbst eintippen, denn der Test probiert es auch mit einer anderen Liste.
punkte = [12, 7, 19, 3, 15]
# Werte die Liste hier aus:- Denkanstoß
Drei Fragen an dieselbe Liste: Welcher Wert ist der größte? Was kommt heraus, wenn man alle zusammenzählt und durch die Anzahl teilt? Und wie oft trifft eine Bedingung zu?
- Welcher Befehl hilft?
Mit
max(punkte)bekommst du den größten Wert.Durchschnitt
=Summe geteilt durch Anzahl, alsosum(punkte)/len(punkte). Runde mitround(..., 1).Geh mit
fordurch die Liste und zähle mit einer Variablen mit, wenn ein Wert größer als 10 ist.Mit der Liste [5, 30, 10, 11] kam etwas anderes heraus als erwartet. Hast du Zahlen fest eingetippt? (10 zählt nicht als „über 10“.)
- Lückencode – ergänze die ___
punkte = [12, 7, 19, 3, 15] print(___) print(___) anzahl = ___ for p in ___: if ___: anzahl = ___ print(___)
Ohne Hinweise gelöst gibt es einen ⭐ auf deiner Fortschrittsseite.
Lösung anzeigen🔒 Erst nach allen Hinweisen oder 2 Prüf-Versuchen
Versuch es erst selbst – aus Fehlern lernt man am meisten. Hier ist eine mögliche Lösung:
punkte = [12, 7, 19, 3, 15]
print(f"Höchste Punktzahl: {max(punkte)}")
print(f"Durchschnitt: {round(sum(punkte) / len(punkte), 1)}")
anzahl = 0
for p in punkte:
if p > 10:
anzahl = anzahl + 1
print(f"Über 10 Punkte: {anzahl}")Für Schnelle
Profi-Aufgabe
Finde die zweitgrößte Zahl in zahlen – ohne sorted(), .sort() und ohne max(). Gleiche Zahlen zählen nur einmal: In [4, 9, 2, 9, 7] ist die zweitgrößte die 7. Gib Zweitgrößte: 7 aus.
zahlen = [4, 9, 2, 9, 7]
# Merk dir beim Durchgehen die größte und die zweitgrößte ZahlProfi-Lösung anzeigen
zahlen = [4, 9, 2, 9, 7]
groesste = None
zweite = None
for z in zahlen:
if groesste is None or z > groesste:
zweite = groesste
groesste = z
elif z != groesste and (zweite is None or z > zweite):
zweite = z
print(f"Zweitgrößte: {zweite}")