Die Kundin ruft an
Eine Kundin nennt ihre Kundennummer. Im Support erscheint sofort ihr Name, ihre Adresse und ihre letzte Bestellung.
Niemand blättert dafür durch Tausende von Kunden. Das Programm schlägt die Nummer nach und springt zum Treffer. Diese Lektion zeigt, wie das geht.
Am Ende dieser Lektion
Notiz
Ich kann einen Wert über seinen Schlüssel nachschlagen.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Wörterbuch | Paare aus Schlüssel und Wert | {"K-1001": "Anna Berger"} |
| Schlüssel | der Name, unter dem ein Wert liegt | |
| Wert | die Daten, die zu einem Schlüssel gehören | |
| Map | der allgemeine Name für ein Wörterbuch in der IT | |
| Menge | Einträge ohne Reihenfolge, jeder höchstens einmal | set() |
| Hash | eine Zahl, aus der sich der Platz eines Schlüssels ergibt |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Wörterbuch schlägt über Schlüssel nach
Eine Liste fragen Sie nach der Stelle. Ein Wörterbuch fragen Sie nach einem Schlüssel.
Jeder Schlüssel zeigt auf einen Wert. Mit kunden["K-1002"] bekommen Sie den Namen zur Nummer K-1002. Mit "K-1005" in kunden prüfen Sie, ob es den Schlüssel gibt.
Probieren Sie es: Kunden nachschlagen
# Ein Wörterbuch: Kundennummer -> Name.
kunden = {
"K-1001": "Anna Berger",
"K-1002": "Jonas Keller",
"K-1003": "Mira Sommer",
}
print(kunden["K-1002"]) # nachschlagen über den Schlüssel
kunden["K-1004"] = "Lukas Brandt" # neuen Eintrag anlegen
kunden["K-1001"] = "Anna Weiss" # vorhandenen Wert ersetzen
print(len(kunden))
if "K-1005" in kunden:
print("K-1005 gibt es")
else:
print("K-1005 gibt es nicht")
# Legen Sie einen Kunden "K-1005" an und drücken Sie Run.
Beispiel: das Kundenwörterbuch
| Schlüssel | Wert | So fragen Sie danach |
|---|---|---|
| K-1001 | Anna Berger | kunden["K-1001"] |
| K-1002 | Jonas Keller | kunden["K-1002"] |
| K-1003 | Mira Sommer | kunden["K-1003"] |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Warum das Nachschlagen schnell geht
Eine Liste müssten Sie von vorn durchsuchen, bis Sie den Kunden finden. Bei einer Million Kunden dauert das lange.
Ein Wörterbuch rechnet aus dem Schlüssel einen Hash, eine Zahl. Sie sagt, wo der Wert liegt. Der Computer springt direkt dorthin. Dafür braucht er fast immer einen einzigen Schritt, egal wie viele Einträge es gibt.
Beispiel: Schritte bis zum Treffer
| Kunden | Liste durchsuchen (im Mittel) | Wörterbuch |
|---|---|---|
| 100 | etwa 50 Schritte | etwa 1 Schritt |
| 10.000 | etwa 5000 Schritte | etwa 1 Schritt |
| 1.000.000 | etwa 500.000 Schritte | etwa 1 Schritt |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Eine Menge kennt jeden Eintrag nur einmal
Manchmal brauchen Sie nur die Frage: Ist das schon da? Dafür gibt es die Menge.
Eine Menge hat keine Reihenfolge und keine doppelten Einträge. Fügen Sie etwas zweimal hinzu, bleibt es einmal drin. Auch die Frage x in menge geht schnell, aus demselben Grund wie beim Wörterbuch.
Probieren Sie es: doppelte Rechnungen erkennen
# Eine Menge: jede Rechnungsnummer höchstens einmal.
gebucht = set()
for nummer in ["R-1", "R-2", "R-1", "R-3", "R-2"]:
gebucht.add(nummer)
print(len(gebucht)) # 3, nicht 5
print("R-2" in gebucht) # True
print("R-9" in gebucht) # False
# Fügen Sie "R-9" hinzu und prüfen Sie es erneut.
Ein häufiger Fehler
Warnung
Viele denken, man könne ein Wörterbuch über eine Stelle ansprechen, wie eine Liste. Ein Wörterbuch wird über den Schlüssel angesprochen. Fragen Sie nach einem Schlüssel, den es nicht gibt, bricht das Programm mit einem KeyError ab. Prüfen Sie vorher mit in.