Python lernen · Schritt 8 von 14
Im MUD: Räume, Ausgänge und dein Spielstand

Python lernen · 04.09.2026

Python lernen: Dictionaries

Dictionaries speichern Werte unter Namen (Schlüsseln) — wie ein Nachschlagewerk statt einer nummerierten Kette. Mit Zähler-Muster, Verschachtelung, Übungen und Quiz.

Listen nummerieren, Dictionaries beschriften: Statt „das dritte Element“ sprichst du beim Dictionary direkt beim Namen — held["gold"] statt held[2]. Damit modellierst du Dinge, die aus vielen Eigenschaften bestehen: Spieler, Räume, Gegenstände.

Schlüssel und Werte

held = {"name": "Mirabel", "hp": 30, "gold": 12}

print(held["name"])           # Mirabel
held["gold"] += 5             # Werte ändern
held["waffe"] = "Elfenbogen"  # neuer Eintrag anlegen
del held["hp"]                # Eintrag löschen

Sicher zugreifen

Fehlende Schlüssel werfen einen KeyError. Mit .get() bestimmst du einen Ersatzwert, mit in prüfst du vorher:

print(held.get("ruestung", "nur Kleidung"))

if "waffe" in held:
    print("Bewaffnet:", held["waffe"])

Über alles laufen

for schluessel, wert in held.items():
    print(schluessel, "=", wert)

Verschachtelte Welten

Werte dürfen selbst Listen oder Dictionaries sein — so baut man echte Datenstrukturen. Falkenmoor verwaltet seine Spieler genau so:

helden = {
    "Mirabel": {"hp": 30, "inventar": ["Schwert", "Brot"]},
    "Thorak":  {"hp": 40, "inventar": ["Axt"]},
}

print(helden["Mirabel"]["inventar"][0])   # Schwert

Das Zähler-Muster

Ein Muster, das du in jedem zweiten Programm wiederfindest: etwas zählen mit .get(..., 0) + 1.

text = "falkenmoor"
zaehler = {}
for buchstabe in text:
    zaehler[buchstabe] = zaehler.get(buchstabe, 0) + 1
print(zaehler)

Liste oder Dictionary?

  • Liste, wenn die Reihenfolge zählt und die Teile gleichartig sind (Inventar, Gegnerwelle, Bestenliste).
  • Dictionary, wenn du per Namen zugreifen willst (Eigenschaften eines Helden, Übersetzungstabelle, Zähler).
  • Kombiniert entstehen richtige Datenmodelle — siehe „Verschachtelte Welten“.

So übst du das

  • Wörterbuch DE→EN: Fünf Vokabeln als Dict, ein kleines Abfrageprogramm mit input().
  • Buchstabenzähler: Das Zähler-Muster auf beliebige Texte anwenden — welcher Buchstabe ist am häufigsten?
  • Spielerdatei: Baue ein Helden-Verzeichnis wie oben und lasse HP von einem beliebigen Helden ausgeben.
  • Lager mit Mengen: {"Brot": 3, "Trank": 1} — verkaufe einen Trank und lösche den Schlüssel bei Menge 0.

Übungen

Übung 1 — Heldendatei

Lege ein Dictionary für einen Helden an (Name, HP, Gold), erhöhe das Gold um 15 und füge die Waffe hinzu. Gib alles mit items() aus.

Musterlösung zeigen
held = {"name": "Thorak", "hp": 40, "gold": 8}
held["gold"] += 15
held["waffe"] = "Axt"

for schluessel, wert in held.items():
    print(schluessel, "=", wert)

Übung 2 — Buchstabenzähler

Zähle die Buchstaben von "Falkenmoor" mit dem Zähler-Muster und gib das Ergebnis aus.

Musterlösung zeigen
text = "Falkenmoor"
zaehler = {}
for z in text.lower():
    zaehler[z] = zaehler.get(z, 0) + 1
print(zaehler)

Übung 3 — Kleinwörterbuch

Übersetze mit einem Dict fünf deutsche Wörter ins Englische — gib „unbekannt“ aus, wenn das Wort fehlt.

Musterlösung zeigen
woerter = {"schwert": "sword", "gold": "gold", "turm": "tower"}

wort = "turm"
print(woerter.get(wort, "unbekannt"))

Übung 4 — Gemeinsame Schlüssel

Zwei Dictionaries liegen vor — finde die Schlüssel, die in beiden stecken (Tipp: in und eine Schleife).

Musterlösung zeigen
a = {"gold": 1, "hp": 2, "mana": 3}
b = {"hp": 9, "waffe": 1, "mana": 5}

for k in a:
    if k in b:
        print(k, a[k], b[k])

Quiz — Teste dich

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

  1. d = {}, dann d["a"] — was passiert?
  2. Was liefert d.get("a", 0), wenn "a" fehlt?
  3. d = {"x": 1, "x": 2} — was enthält das Dictionary?
  4. Was gibt len({"a": 1, "b": 2}) aus?
  5. Welche dieser Typen ist als Dictionary-Schlüssel nicht erlaubt: "name", 42, [1, 2]?
Quiz-Lösungen anzeigen
  1. Ein KeyError — der Schlüssel existiert nicht.
  2. 0 — der angegebene Ersatzwert.
  3. {"x": 2} — bei doppelten Schlüsseln gewinnt der letzte.
  4. 2 — die Anzahl der Schlüssel-Wert-Paare.
  5. [1, 2] — Listen sind veränderbar und damit als Schlüssel tabu; Texte und Zahlen sind erlaubt.

↩ Vorheriger Teil: Listen

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

Mehr aus der Kategorie „Python lernen“

← Zurück zum Lehrpfad