Python lernen · Schritt 7 von 14
Im MUD: das Inventar und die Items am Boden

Python lernen · 05.09.2026

Python lernen: Listen

Listen halten viele Werte in einer geordneten Sammlung — ideal für Inventare, Räume oder Gegnerwellen. Mit Slicing, Alias-Falle, Comprehensions, Übungen und Quiz.

Eine Variable pro Gegenstand? Nach dem dritten Schwert wird das albern. Listen halten beliebig viele Werte in fester Reihenfolge — und sie können wachsen, schrumpfen, sortiert und durchsucht werden.

Geordnete Sammlungen

inventar = ["Schwert", "Brot", "Fackel"]

print(inventar[0])    # Schwert — Zählung beginnt bei 0
print(inventar[-1])   # Fackel — negativ zählt von hinten
print(len(inventar))  # 3

Scheiben vom Kuchen: Slicing

zahlen = [10, 20, 30, 40, 50]

print(zahlen[1:3])   # [20, 30] — Ende ist exklusiv!
print(zahlen[:2])    # [10, 20]
print(zahlen[-2:])   # [40, 50]
print(zahlen[::-1])  # rückwärts!

Verändern

inventar = ["Schwert", "Brot"]
inventar.append("Trank")      # hinten anfügen
inventar.insert(1, "Bogen")   # an Stelle 1 einfügen
inventar.remove("Brot")       # ersten Treffer entfernen
letzte = inventar.pop()       # letztes Element entnehmen
inventar.sort()               # alphabetisch sortieren (direkt in der Liste!)
print(inventar, letzte)

Achtung bei sort(): Die Methode sortiert die Liste an Ort und Stelle und gibt None zurück. x = liste.sort() endet daher fast immer in Enttäuschung — willst du eine sortierte Kopie, nimm sorted(liste).

Prüfen und messen

if "Trank" in inventar:
    print("Du bist bereit für den Kampf.")

print(min([4, 2, 9]), max([4, 2, 9]), sum([4, 2, 9]))

Die Alias-Falle

a = [1, 2, 3]
b = a            # KEINE Kopie — beide Namen zeigen auf dieselbe Liste!
b.append(4)
print(a)         # [1, 2, 3, 4] — a hat „mitgelebt“

kopie = a[:]     # echte Kopie (oder list(a))

Diese Falle kostet Anfänger Stunden: Zuweisung kopiert nie den Inhalt, sondern hängt nur ein zweites Namensschild an dieselbe Liste.

Comprehensions

Eine Listen-Comprehension baut in einer Zeile eine neue Liste aus einer alten — mit optionalem Filter:

preise = [2, 5, 8, 11]
verdoppelt = [p * 2 for p in preise]
gerade = [z for z in range(10) if z % 2 == 0]
print(verdoppelt, gerade)

So übst du das

  • Inventar-Manager: Füge Items hinzu, verkaufe welche, sortiere und gib alles nummeriert aus.
  • Einkaufsliste: while True + input(), Abbruch bei „fertig“ — verbindet Schleifen, Listen und Bedingungen.
  • Notenschnitt: Durchschnitt einer Notenliste mit sum und len.
  • Dublettenjagd: Entferne Duplikate (Ausblick: set(liste) macht es in einem Befehl).

Übungen

Übung 1 — Der Schnitt

Berechne den Durchschnitt von [12, 9, 15, 8, 20].

Musterlösung zeigen
punkte = [12, 9, 15, 8, 20]
schnitt = sum(punkte) / len(punkte)
print(round(schnitt, 2))

Übung 2 — Größte ohne max()

Finde die größte Zahl der Liste mit einer Schleife — wie bei den Konditionen, aber mit Listenzugriff.

Musterlösung zeigen
zahlen = [12, 45, 7, 33]
groesste = zahlen[0]
for z in zahlen:
    if z > groesste:
        groesste = z
print(groesste)

Übung 3 — Ork-Wächter

Zähle, wie oft „Ork“ in der Gegnerliste vorkommt — einmal mit Schleife, einmal mit liste.count("Ork").

Musterlösung zeigen
gegner = ["Ork", "Ratte", "Ork", "Troll"]

zaehler = 0
for g in gegner:
    if g == "Ork":
        zaehler += 1
print(zaehler, gegner.count("Ork"))   # 2 2

Übung 4 — Quadrate im Fluss

Baue mit einer Comprehension die Quadrate von 1 bis 10 — aber nur die geraden Ergebnisse.

Musterlösung zeigen
quadrate = [q ** 2 for q in range(1, 11) if (q ** 2) % 2 == 0]
print(quadrate)   # [4, 16, 36, 64, 100]

Quiz — Teste dich

Erst überlegen, dann aufklappen — so trainiert es am meisten!

  1. liste = [10, 20, 30] — was ist liste[-1]?
  2. Was ergibt len([1, [2, 3]])?
  3. Was ist [0] * 3?
  4. x = [3, 1, 2].sort() — was ist in x?
  5. a = [1, 2, 3]; b = a; b.append(4) — wie lang ist a?
Quiz-Lösungen anzeigen
  1. 30 — negative Indizes zählen von hinten.
  2. 2 — die innere Liste zählt als ein Element.
  3. [0, 0, 0] — Liste mal Zahl wiederholt sie.
  4. Nonesort() sortiert an Ort und Stelle und gibt nichts zurück. Richtig: x = sorted([3, 1, 2]).
  5. 4 — b = a ist keine Kopie; beide Namen zeigen auf dieselbe Liste.

↩ Vorheriger Teil: Funktionen

Weiter geht's mit dem nächsten Teil: Dictionaries

Mehr aus der Kategorie „Python lernen“

← Zurück zum Lehrpfad