Python Dictionaries gehören zu den zentralen Datenstrukturen in dieser Coding-Sprache. Wie ein Nachschlagewerk beinhalten sie Begriffe und Bedeutungen. Indes findest Du im Python Dictionary Elemente, die mit weiteren Informationen verknüpft sind. Zudem dienen sie zur Speicherung von Key/Value-Paaren und bieten dafür eine Menge nützlicher Funktionen.
Was sind Python Dictionaries?
Python Dictionaries sind Datenstrukturen, die wichtige Elemente speichern. Auch wenn sie Dir in der Python Entwicklungsumgebung vielleicht noch nicht begegnet sind, das Wort kennst Du vermutlich aus dem Englisch-Unterricht. Dabei nimmt dieses spezielle Wörterbuch Daten in Form von Paaren auf. Indes bestehen diese aus einem Schlüssel und einem Wert. Mithilfe des Schlüssels kann man auf den Wert zugreifen. Die englischen Bezeichnungen Key und Value werden dabei auch im deutschen oft verwendet. Im Vokabelheft handelt es sich bei den Keys und Values um Wörter mit ihren Übersetzungen. Es könnte aber auch ein Fehlercode oder eine Liste von Webseiten mit dazu passenden Passwörtern sein. In Python wird ein sogenanntes Wörterbuch dabei folgendermaßen definiert:
woerterbuch = {‚baum‘:’tree‘, ‚house‘:’House‘, ‚car‘:’Auto‘}
In die Variable woerterbuch wird ein Dictionary, bestehend aus drei Key/Value-Paaren, integriert. Key und Value werden dabei durch einen Doppelpunkt voneinander getrennt. Die Key/Value-Paare hingegen werden durch Kommas abgegrenzt. Die ganze Liste wird in geschweiften Klammern dargestellt. Der Zugriff auf einzelne Elemente erfolgt mithilfe des Dictionary-Namens, gefolgt vom Schlüssel in eckigen Klammern:
dict[key]
Für das Wörterbuch sieht das dann folgendermaßen aus:
print(woerterbuch[‚baum‘])
Hier wird auf den Wert des Schlüssels baum zugegriffen. Die Ausgabe ist also tree. Im vorherigen Beispiel wurde der Inhalt des Dictionaries, also die drei Vokabeln, im Code angegeben. Dafür muss man bereits vor dem Coding wissen, was im Dictionary enthalten sein soll. Das ist aber nicht immer der Fall. Oft werden Daten vom Benutzer eingegeben, aus einer Datenbank gelesen oder in einer anderern Form erst zur Laufzeit erhalten. Das klingt ziemlich kompliziert. Nun ist es Zeit für ein erstes Beispiel!
Python Dictionary – Verwendungsmöglichkeiten
Damit Du weißt, wie man mit einem Python Dictionary arbeitet, beginnen wir mit einem ersten Beispiel. Wir möchten ein Vokabelheft-Programm, in dem der Benutzer eigene Vokabeln eintragen kann, erstellen. Damit man dieses einrichten kann, muss man das Dictionary auch zur Laufzeit befüllen können. Das funktioniert mit der gleichen Syntax wie beim obigen Zugriff. Allerdings ordnet man mit dem Gleichzeichen dem Eintrag woerterbuch[‘strasse’] einen bestimmten Wert zu:
woerterbuch[’strasse‘] = ’street‘
Mit der gleichen Methode lassen sich auch bestehende Einträge ändern. Die folgende Anweisung ersetzt den Eintrag für car und fügt nicht etwa einen Weiteren hinzu:
woerterbuch[‚car‘] = ‚Automobil‘
Der Befehl dictionary[key] hilft dabei, den Wert anzuzeigen. Indes kann man ihn benutzen, um den Wert auszugeben, aber auch um ihn zu setzen. Daher können Dictionaries in Python keine doppelten Keys enthalten. Doppelte Werte dagegen sind schon möglich:
woerterbuch = {‚baum‘:’tree‘, ‚house‘:’House‘, ‚car‘:’Auto‘, ‚vehicle‘:’Auto‘}
Sowohl der Zugriff mit dem Schlüssel car, als auch mit vehicle liefert hier den Eintrag Auto. Das Löschen von Elementen aus der Datenstruktur geschieht mit dem Schlüsselwort del:
del woerterbuch[’strasse‘]
Dabei werden sowohl Key als auch Value aus dem Dictionary entfernt. Der Befehl del kann aber auch mit anderen Datenstrukturen verwendet werden. Bisher standen alle Daten des Dictionaries in Anführungszeichen. Weder bei den Keys, noch bei den Values muss es sich aber um Python Strings handeln. Im nächsten Beispiel ist der Key eine Zahl und der Value ein String:
http_codes = {200: ‚OK‘, 201: ‚Created‘, 202: ‚Accepted‘}
Beim Zugriff muss nun auch eine Zahl verwendet werden:
print(http_codes[200])
Es sind aber auch Zahl-Paare und Dictionaries mit gemischten Python Datentypen möglich:
gemischt = {‘tree’:‘Baum’, 200: ‘OK’, 201: ‘Created’, 202: ‘Accepted’}
Das kommt in der Praxis allerdings eher selten vor, da man beim Verarbeiten der Werte schließlich überprüfen muss, um was für einen Typ es sich handelt.
Hilfsfunktionen
Während der Laufzeit können sich die Inhalte des Wörterbuchs jederzeit ändern, da nicht immer bekannt ist, was zu einem gegebenen Zeitpunkt erfasst wurde. Aus diesem Grund existieren in Python einige Funktionen, mit denen sich nähere Informationen über den Inhalt beschaffen lassen. Die Anzahl der Paare erhält man mit der Funktion len():
Da in unserem Beispiel drei Paare im Dictionary enthalten sind, ist die Ausgabe 3. Im Folgenden wollen wir versuchen, auf einen Schlüssel zuzugreifen, der in nicht im Dictionary enthalten ist:
http_codes = {200: ‚OK‘, 201: ‚Created‘, 202: ‚Accepted‘}
print(http_codes[203])
Du siehst, der Zugriff auf nicht existierende Schlüssel funktioniert nicht. In Abbildung 1 kannst Du erkennen, dass das Abrufen nicht enthaltener Elemente zu einer Fehlermeldung führt.
Du fragst Dich, wie man diese Meldung umgehen kann? Um Fehler zu vermeiden, kann man mit dem Schlüsselwort in überprüfen, ob ein Key enthalten ist:
In diesem Beispiel ist die Ausgabe True, da der Schlüssel 200 im Dictionary vorhanden ist. Gibst Du hingegen den Wert 203 ein, wird die Information False ausgegeben. Demnach ist dieser nicht im Wörterbuch enthalten. Bei unserem Beispiel macht die Überprüfung jedoch wenig Sinn, da das Dictionary in der ersten Zeile erstellt wurde und somit klar ist, was genau enthalten ist. Bei Anwendungen, die mit dynamischen Inhalten arbeiten, ist die Prüfung mit in dagegen sehr nützlich. Auf ganz ähnliche Art und Weise kannst Du feststellen, ob ein Schlüssel nicht enthalten ist. Dabei hilft der Ausdruck not in. In unserem Beispiel ist die Ausgabe zunächst True (203 ist nicht im Dictionary) und danach false (201 schon).
Einzelne Elemente anzeigen lassen
Du hast Dich beim Coden womöglich schon mit Wiederholungen beschäftigt. Dabei kann die Python For Schleife hervorragend benutzt werden, um alle Elemente eines Dictionaries anzuzeigen. Sie wiederholt die Anweisung und speichert die einzelnen Schlüssel in einer Variablen. Mit den Schlüsseln kann man anschließend die Werte abfragen:
Die Python Variable mit dem Schlüsselnamen heißt hier key. Das funktioniert aber auch, wenn Du einen anderen Namen verwendest. Indes könntest Du auch die Bezeichnung „Vokabel“ wählen. Dieser Name wäre ebenso passend und auch der Befehl würde genauso funktionieren. Die Ausgabe des Mini-Programms sieht dabei folgendermaßen aus:
baum heißt tree
house heißt House
car heißt Auto
Wie Dir vielleicht aufgefallen ist, entspricht die Reihenfolge der ausgegebenen Elemente der Abfolge der Definition. Python Dictionaries sind also geordnete Datenstrukturen und merken sich die Reihenfolge beim Zufügen. Das ist nicht bei allen Datenstrukturen der Fall. Wörterbücher sind also mächtige Werkzeuge. Jedoch müssen sie zum Anwendungszweck passen. Wenn es um Key/Value-Paare geht, solltest Du darüber nachdenken, ein Dictionary zu verwenden. Für andere Aufgaben gibt es andere Datenstrukturen. Zum Beispiel kannst Du mit Listen arbeiten.
Nun kennst Du die wichtigsten Informationen über das Python Dictionary und weißt, wie man damit arbeitet. Bist Du neugierig geworden? Dann stürze Dich auf Deinen Computer, starte den Python Download und erstelle Dein erstes Dictionary! Wenn Du im Programmieren schon etwas Erfahrung hast, kannst Du Dich ja mal an Python Anaconda probieren.
FAQs – Python Dictionaries
Ein Python Dictionary ist eine universelle Datenstruktur zum Speichern von Objekten. Wie ein Nachschlagewerk beinhalten sie Begriffe und Bedeutungen. Dabei besteht es aus sogenannten Schlüssel-Objekt-Paaren.
Mit den Befehlen items(), keys() und values() kannst Du aus Dictionaries Listen erzeugen. Mit der Funktion keys() kannst Du ganz einfach eine Liste erstellen, die nur aus den Schlüsseln besteht. Eine Liste bestehend aus Wertepaaren, gelingt Dir mit dem Befehl items(). Wenn Du eine Liste nur aus den Werten erstellen möchtest, nutzt Du am besten die Funktion keys().
Mit der Funktion copy() kann man ein Dictionary in Python kopieren. Mit dem Befehl clear() kannst Du den Inhalt ganz einfach löschen. Das Dictionary bleibt aber bestehen. Weitere Befehle hat die Universität Freiburg übersichtlich zusammengefasst.