Zum Inhalt springen
BetaEN
Lektion 8 von 35Python

Python · Lektion 8 · 25 Minuten

Dictionaries – Wörterbücher

Das lernst du

  • Daten als Paare aus Schlüssel und Wert speichern
  • Werte nachschlagen, ändern und hinzufügen
  • Mit items() alle Paare durchgehen

Nachschlagen statt Durchzählen

In einer Liste findest du Werte über ihre Position. Oft ist es aber praktischer, einen Wert über einen Namen zu finden – so wie in einem Wörterbuch, in dem du ein Wort nachschlägst. Genau das macht ein Dictionary (Typ dict):

telefonbuch = {"Mia": "0171 1234", "Ben": "0160 9876"}
print(telefonbuch["Mia"])

Ein Dictionary besteht aus Paaren: Schlüssel: Wert. Der Schlüssel steht vor dem Doppelpunkt, der Wert dahinter. Alles zusammen kommt in geschweifte Klammern { }.

Ändern und hinzufügen

Mit derselben Schreibweise änderst du Werte – oder legst neue Paare an, wenn es den Schlüssel noch nicht gibt. Schau dir mit Schritte an, wie das Dictionary wächst:

spieler = {"name": "Lena", "level": 3}
spieler["level"] = 4
spieler["leben"] = 3
print(spieler)
print(len(spieler))

Sicher nachschlagen

Fragst du nach einem Schlüssel, den es nicht gibt, stürzt das Programm mit einem KeyError ab. Mit in prüfst du vorher, oder du nimmst get() mit einem Ersatzwert:

noten = {"Mathe": 2, "Deutsch": 1}

if "Kunst" in noten:
    print(noten["Kunst"])
else:
    print("Keine Note für Kunst.")

print(noten.get("Sport", "noch offen"))

Alle Paare durchgehen

Mit .items() bekommst du in einer Schleife jedes Mal Schlüssel und Wert:

punkte = {"Team Rot": 12, "Team Blau": 15, "Team Grün": 9}

for team, stand in punkte.items():
    print(f"{team} hat {stand} Punkte")

bestes = max(punkte, key=punkte.get)
print(f"Vorne liegt {bestes}!")

Merke: Jeder Schlüssel kommt in einem Dictionary nur einmal vor. Schreibst du einen Schlüssel ein zweites Mal hinein, wird der alte Wert überschrieben.

Kurz-Check

Bevor es an die Aufgabe geht: Was gibt dieses Programm aus? Tipp deine Vermutung ein – Python rechnet danach nach.

alter = {"Ana": 12, "Ben": 13}
alter["Ana"] = alter["Ana"] + 1
print(alter)

Deine Aufgabe

Jetzt bist du dran

Im Dictionary lager steht, wie viel Obst ein Laden hat. Füge Bananen mit 7 Stück hinzu und erhöhe die Äpfel um 3. Gib danach jedes Obst, das noch vorrätig ist (mehr als 0), in einer eigenen Zeile aus, z. B. Äpfel: 8. Leere Sorten sollen nicht erscheinen.

lager = {"Äpfel": 5, "Birnen": 0, "Kiwis": 12}

# Ändere das Lager und gib es aus:

Ohne Hinweise gelöst gibt es einen ⭐ auf deiner Fortschrittsseite.

Lösung anzeigen

Versuch es erst selbst – aus Fehlern lernt man am meisten. Hier ist eine mögliche Lösung:

lager = {"Äpfel": 5, "Birnen": 0, "Kiwis": 12}

lager["Bananen"] = 7
lager["Äpfel"] = lager["Äpfel"] + 3

for obst, anzahl in lager.items():
    if anzahl > 0:
        print(f"{obst}: {anzahl}")
Mehr üben im TrainingsraumEndlos neue Aufgaben zu diesem Thema – mit XP und Serien.