Was ist ein Dictionary?
Bisher hat jede Variable einen Wert enthalten, etwa eine Zahl oder einen Text, oder eine Liste gleichartiger Werte, etwa die Namen deiner Freunde. In dieser Lektion lernst du Dictionaries kennen. Ein Dictionary hält mehrere Werte zusammen, die ein und dieselbe Sache beschreiben, und gibt jedem von ihnen einen Namen.
Stell dir vor, du willst ein paar Angaben zu einer Person speichern: Name, Alter und Stadt. Du könntest sie in einzelnen Variablen ablegen:
name = "Anna"
alter = 21
stadt = "Berlin"Für eine Person geht das, aber für zehn Personen bräuchtest du dreißig Variablen, und nichts im Code würde sagen, welche davon zusammengehören. Du könntest die Werte stattdessen in eine Liste packen:
person = ["Anna", 21, "Berlin"]Jetzt sind sie zusammen, aber du musst dir merken, dass Index 0 der Name und Index 2 die Stadt ist. Und was ist person[1]? Der Code verrät es nicht.
Ein Dictionary löst beide Probleme. Es hält die Werte zusammen und gibt jedem einen Namen:
person = {"name": "Anna", "alter": 21, "stadt": "Berlin"}Ein Dictionary wird in geschweiften Klammern { } geschrieben. Darin stehen Schlüssel-Wert-Paare, getrennt durch Kommas. Der Schlüssel ist der Name eines Werts: "name", "alter", "stadt". Er ist meist ein Text und steht deshalb in Anführungszeichen. Nach dem Schlüssel kommen ein Doppelpunkt und dann der Wert, der alles sein kann, was du kennst: Text, eine Zahl, True oder False, sogar eine Liste.
Warum „Dictionary“? Das englische Wort bedeutet „Wörterbuch“, und es funktioniert wie ein echtes Wörterbuch: Du schlägst ein Wort (den Schlüssel) nach und findest seine Bedeutung (den Wert).
Ein längeres Dictionary liest sich leichter, wenn jedes Paar in einer eigenen Zeile steht. Beide Schreibweisen bedeuten dasselbe. Wenn du ein Dictionary ausgibst, zeigt Python es in einer Zeile an, mit Text in einfachen Anführungszeichen, wie bei Listen. Die Paare bleiben in der Reihenfolge, in der du sie geschrieben hast:
person = {
"name": "Anna",
"alter": 21,
"stadt": "Berlin"
}
print(person){'name': 'Anna', 'alter': 21, 'stadt': 'Berlin'}Hänge ein Dictionary nicht mit + an einen Text an; das funktioniert nicht, genauso wenig wie bei einer Zahl. "Person: " + person endet mit TypeError: can only concatenate str (not "dict") to str. Trenne sie stattdessen mit einem Komma, print("Person:", person), oder verwende einen f-String.
Typische Fehler beim Schreiben eines Dictionaries:
- Ein fehlendes Komma zwischen zwei Paaren:
{"name": "Anna", "alter": 21 "stadt": "Berlin"}endet mitSyntaxError: invalid syntax. Perhaps you forgot a comma? - Ein Schlüssel ohne Anführungszeichen:
{name: "Anna"}. Python hältnamefür eine Variable, und das Programm endet mitNameError: name 'name' is not defined. =statt Doppelpunkt:{"name" = "Anna"}endet mitSyntaxError: cannot assign to literal here. Maybe you meant '==' instead of '='?Die Meldung hilft nicht viel (du wolltest ja auch kein==), also merke dir: Wenn du sie siehst, such nach einem=in geschweiften Klammern.
So schreibst du es:
Anweisungen
- 1
Lösche die drei Variablen und das
print(). Erstelle stattdessen eine Variabletiermit einem Dictionary, das diese Paare in dieser Reihenfolge enthält:"name"mit dem Wert"Rex","art"mit"Hund","alter"mit3und"geimpft"mitTrue. Gib es mitprint(tier)aus. Die Ausgabe soll{'name': 'Rex', 'art': 'Hund', 'alter': 3, 'geimpft': True}sein. - 2
Gib das Dictionary darunter noch einmal aus, diesmal mit der Beschriftung
Tier:davor. Die neue Zeile sollTier: {'name': 'Rex', 'art': 'Hund', 'alter': 3, 'geimpft': True}lauten.