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:- Denkanstoß
Einen neuen Eintrag legst du so an –
lager["Bananen"]=7 - Welcher Befehl hilft?
Lies den alten Wert und addiere 3 –
lager["Äpfel"]=lager["Äpfel"]+3Geh mit
forobst, anzahl inlager.items()durch das Dictionary und gib jede Sorte als „Name: Anzahl“ aus.Birnen haben 0 Stück und sollen nicht erscheinen. Prüfe mit
ifanzahl>0. - Lückencode – ergänze die ___
lager = {"Äpfel": 5, "Birnen": 0, "Kiwis": 12} lager["Bananen"] = ___ ___ for obst, anzahl in ___: if ___: 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:
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}")