Einführung
Das Wörterbuch ist ein integrierter Mapping-Typ in Python. Wörterbücher ordnen Schlüssel den Werten zu, und diese Schlüssel-Wert-Paare bieten eine nützliche Möglichkeit, Daten in Python zu speichern.
Typischerweise werden sie verwendet, um zusammengehörige Daten zu halten, wie die Informationen in einer ID oder einem Benutzerprofil. Wörterbücher werden mit geschweiften Klammern auf beiden Seiten konstruiert: {
}
.
Information: Um den Beispielcode in diesem Tutorial zu verfolgen, öffnen Sie eine Python-Interaktionsschale auf Ihrem lokalen System, indem Sie den Befehl python3
ausführen. Dann können Sie die Beispiele kopieren, einfügen oder bearbeiten, indem Sie sie nach der Eingabeaufforderung >>>
hinzufügen.
A dictionary looks like this:
Zusätzlich zu den geschweiften Klammern gibt es auch Doppelpunkte (:
) im gesamten Wörterbuch.
Die Wörter links von den Doppelpunkten sind die Schlüssel. Schlüssel können aus jedem unveränderlichen Datentyp bestehen. Die Schlüssel im obigen Wörterbuch sind:
'Benutzername'
'online'
'Anhänger'
Jeder der Schlüssel im obigen Beispiel sind Zeichenketten Werte.
Die Wörter rechts von den Doppelpunkten sind die Werte. Werte können aus jedem Datentyp bestehen. Die Werte im obigen Wörterbuch sind:
'sammy-hai'
Wahr
987
Jeder dieser Werte ist entweder ein String, ein Boolean oder eine Ganzzahl.
Lassen Sie uns das Wörterbuch sammy
ausgeben:
Output{'username': 'sammy-shark', 'followers': 987, 'online': True}
Beim Betrachten der Ausgabe kann sich die Reihenfolge der Schlüssel-Wert-Paare verschoben haben. In Python Version 3.5 und früher ist der Datentyp des Wörterbuchs ungeordnet. Ab Python Version 3.6 bleibt der Datentyp des Wörterbuchs jedoch geordnet. Unabhängig davon, ob das Wörterbuch geordnet ist oder nicht, bleiben die Schlüssel-Wert-Paare intakt, sodass wir auf Daten basierend auf ihrer relationalen Bedeutung zugreifen können.
Voraussetzungen
Sie sollten Python 3 installiert und eine Programmierumgebung auf Ihrem Computer oder Server eingerichtet haben. Wenn Sie keine Programmierumgebung eingerichtet haben, können Sie sich auf die Installations- und Einrichtungshandbücher für eine lokale Programmierumgebung oder für eine Programmierumgebung auf Ihrem Server beziehen, die für Ihr Betriebssystem geeignet ist (Ubuntu, CentOS, Debian usw.).
Zugriff auf Wörterbuchelemente
Wir können die Werte eines Wörterbuchs aufrufen, indem wir die zugehörigen Schlüssel referenzieren.
Zugriff auf Datenelemente mit Schlüsseln
Weil Wörterbücher Schlüssel-Wert-Paare zum Speichern von Daten anbieten, können sie wichtige Elemente in Ihrem Python-Programm sein.
Wenn wir den Benutzernamen von Sammy isolieren möchten, können wir dies tun, indem wir sammy['username']
aufrufen. Lassen Sie uns das ausdrucken:
Outputsammy-shark
Wörterbücher verhalten sich ähnlich wie eine Datenbank, indem Sie anstelle eines ganzen Zahl, um einen bestimmten Indexwert abzurufen, wie Sie es mit einer Liste tun würden, einem Schlüssel einen Wert zuweisen und diesen Schlüssel aufrufen können, um seinen zugehörigen Wert zu erhalten.
Indem wir den Schlüssel 'username'
aufrufen, erhalten wir den Wert dieses Schlüssels, der 'sammy-shark'
ist.
Die verbleibenden Werte im Wörterbuch sammy
können auf ähnliche Weise im selben Format aufgerufen werden:
Indem wir die Schlüssel-Wert-Paare der Wörterbücher verwenden, können wir Schlüssel referenzieren, um Werte abzurufen.
Verwendung von Methoden zum Zugriff auf Elemente
Zusätzlich zur Verwendung von Schlüsseln zum Zugriff auf Werte können wir auch mit einigen integrierten Methoden arbeiten:
dict.keys()
isoliert Schlüsseldict.values()
isoliert Wertedict.items()
gibt Elemente in einer Listenformat von(Schlüssel, Wert)
-Tupelpaaren zurück
Um die Schlüssel zurückzugeben, würden wir die Methode dict.keys()
verwenden. In unserem Beispiel würde das den Variablennamen verwenden und sammy.keys()
sein. Lassen Sie uns das an eine print()
-Methode übergeben und uns die Ausgabe ansehen:
Outputdict_keys(['followers', 'username', 'online'])
Wir erhalten eine Ausgabe, die die Schlüssel innerhalb eines iterierbaren Ansichtsobjekts der Klasse dict_keys
platziert. Die Schlüssel werden dann im Listenformat gedruckt.
Diese Methode kann verwendet werden, um über Dictionaries abzufragen. Zum Beispiel können wir uns die gemeinsamen Schlüssel zwischen zwei Wörterbuchdatenstrukturen ansehen:
Das Wörterbuch sammy
und das Wörterbuch jesse
sind jeweils ein Benutzerprofil-Wörterbuch.
Ihre Profile haben jedoch unterschiedliche Schlüssel, da Sammy ein soziales Profil mit zugehörigen Followern hat und Jesse ein Spielerprofil mit zugehörigen Punkten hat. Die 2 Schlüssel, die sie gemeinsam haben, sind Benutzername
und online
-Status, die wir finden können, wenn wir dieses kleine Programm ausführen:
Outputsammy-shark JOctopus
True False
Wir könnten das Programm sicherlich verbessern, um die Ausgabe benutzerfreundlicher zu gestalten, aber dies zeigt, dass dict.keys()
verwendet werden kann, um über verschiedene Wörterbücher zu prüfen, was sie gemeinsam haben oder nicht. Dies ist besonders nützlich für große Wörterbücher.
Ähnlich können wir die Methode dict.values()
verwenden, um die Werte im sammy
-Wörterbuch abzufragen, das wie sammy.values()
aufgebaut wäre. Lass uns die ausdrucken:
Outputdict_values([True, 'sammy-shark', 987])
Sowohl die Methoden keys()
als auch values()
geben unsortierte Listen der Schlüssel und Werte zurück, die im sammy
-Wörterbuch mit den Ansichtsobjekten von dict_keys
bzw. dict_values
vorhanden sind.
Wenn wir an allen Elementen in einem Wörterbuch interessiert sind, können wir mit der Methode items()
darauf zugreifen:
Outputdict_items([('online', True), ('username', 'sammy-shark'), ('followers', 987)])
Das zurückgegebene Format davon ist eine Liste, die aus (Schlüssel, Wert)
-Tupelpaaren mit dem Ansichtsobjekt dict_items
besteht.
Wir können über das zurückgegebene Listenformat mit einer for
-Schleife iterieren. Zum Beispiel können wir jeden der Schlüssel und Werte eines bestimmten Wörterbuchs ausdrucken und ihn dann durch Hinzufügen eines Strings menschenlesbarer machen:
Outputonline is the key for the value True
followers is the key for the value 987
username is the key for the value sammy-shark
Die obige for
-Schleife iterierte über die Elemente innerhalb des sammy
-Wörterbuchs und druckte die Schlüssel und Werte Zeile für Zeile aus, mit Informationen, um sie für Menschen einfacher verständlich zu machen.
Wir können integrierte Methoden verwenden, um Elemente, Werte und Schlüssel aus Wörterbuchdatenstrukturen abzurufen.
Ändern von Wörterbüchern
Wörterbücher sind eine veränderbare Datenstruktur, sodass Sie sie ändern können. In diesem Abschnitt werden wir das Hinzufügen und Löschen von Wörterbuchelementen besprechen.
Hinzufügen und Ändern von Wörterbucheinträgen
Ohne die Verwendung einer Methode oder Funktion können Sie Schlüssel-Wert-Paare zu Wörterbüchern hinzufügen, indem Sie die folgende Syntax verwenden:
Wir werden uns ansehen, wie dies in der Praxis funktioniert, indem wir ein Schlüssel-Wert-Paar zu einem Wörterbuch mit dem Namen Benutzernamen
hinzufügen:
Output{'Drew': 'squidly', 'Sammy': 'sammy-shark', 'Jamie': 'mantisshrimp54'}
Wir sehen nun, dass das Wörterbuch um das Schlüssel-Wert-Paar 'Drew': 'squidly'
aktualisiert wurde. Da Wörterbücher ungeordnet sein können, kann dieses Paar überall in der Wörterbuchausgabe auftreten. Wenn wir das Wörterbuch Benutzernamen
später in unserer Programmdatei verwenden, wird es das zusätzliche Schlüssel-Wert-Paar enthalten.
Zusätzlich kann diese Syntax auch zum Ändern des Werts verwendet werden, der einem Schlüssel zugewiesen ist. In diesem Fall werden wir auf einen vorhandenen Schlüssel verweisen und ihm einen anderen Wert übergeben.
Betrachten wir ein Wörterbuch drew
, das einer der Benutzer in einem bestimmten Netzwerk ist. Wir sagen, dass dieser Benutzer heute einen Anstieg der Follower hatte, daher müssen wir den Ganzzahlwert, der dem Schlüssel 'followers'
übergeben wird, aktualisieren. Wir verwenden die print()
-Funktion, um zu überprüfen, ob das Wörterbuch geändert wurde.
Output{'username': 'squidly', 'followers': 342, 'online': True}
In der Ausgabe sehen wir, dass die Anzahl der Follower vom Ganzzahlwert 305
auf 342
gesprungen ist.
Wir können diese Methode verwenden, um Schlüssel-Wert-Paare zu Wörterbüchern mit Benutzereingaben hinzuzufügen. Schreiben wir ein schnelles Programm, usernames.py
, das auf der Befehlszeile ausgeführt wird und Eingaben vom Benutzer ermöglicht, um weitere Namen und zugehörige Benutzernamen hinzuzufügen:
Führen wir das Programm auf der Befehlszeile aus:
Wenn wir das Programm ausführen, erhalten wir eine Ausgabe wie folgt:
OutputEnter a name:
Sammy
sammy-shark is the username of Sammy
Enter a name:
Jesse
I don't have Jesse's username, what is it?
JOctopus
Data updated.
Enter a name:
Wenn wir mit dem Testen des Programms fertig sind, können wir STRG + C
drücken, um das Programm zu beenden. Sie können einen Auslöser einrichten, um das Programm zu beenden (zum Beispiel durch Eingabe des Buchstabens q
) mit einer bedingten Anweisung, um den Code zu verbessern.
Dies zeigt, wie Sie Wörterbücher interaktiv ändern können. Bei diesem bestimmten Programm verlieren Sie sofort alle Ihre Daten, sobald Sie das Programm mit STRG + C
beenden, es sei denn, Sie implementieren eine Möglichkeit, das Lesen und Schreiben von Dateien zu behandeln.
Wir können auch Wörterbücher hinzufügen und ändern, indem wir die Methode dict.update()
verwenden. Dies unterscheidet sich von der append()
Methode, die in Listen verfügbar ist.
In dem unten stehenden Wörterbuch jesse
fügen wir den Schlüssel 'followers'
hinzu und geben ihm einen ganzzahligen Wert mit jesse.update()
. Danach lassen Sie uns das aktualisierte Wörterbuch print()
.
Output{'followers': 481, 'username': 'JOctopus', 'points': 723, 'online': False}
Aus der Ausgabe können wir sehen, dass wir das Schlüssel-Wert-Paar 'followers': 481
erfolgreich zum Wörterbuch jesse
hinzugefügt haben.
Wir können auch die Methode dict.update()
verwenden, um ein vorhandenes Schlüssel-Wert-Paar zu ändern, indem wir einen bestimmten Wert für einen bestimmten Schlüssel ersetzen.
Lassen Sie uns den Online-Status von Sammy von True
auf False
im Wörterbuch sammy
ändern:
Output{'username': 'sammy-shark', 'followers': 987, 'online': False}
Die Zeile sammy.update({'online': False})
bezieht sich auf den vorhandenen Schlüssel 'online'
und ändert seinen Booleschen Wert von True
auf False
. Wenn wir das Wörterbuch mit print()
aufrufen, sehen wir die Aktualisierung im Ausgabefenster.
Um Elemente zu Wörterbüchern hinzuzufügen oder Werte zu ändern, können wir entweder die Syntax dict[key] = value
oder die Methode dict.update()
verwenden.
Elemente aus Wörterbüchern löschen
Genau wie Sie Schlüssel-Wert-Paare hinzufügen und Werte innerhalb des Wörterbuchdatentyps ändern können, können Sie auch Elemente innerhalb eines Wörterbuchs löschen.
Um ein Schlüssel-Wert-Paar aus einem Wörterbuch zu entfernen, verwenden wir die folgende Syntax:
Lassen Sie uns das Wörterbuch jesse
nehmen, das einen der Benutzer repräsentiert. Wir sagen, dass Jesse die Online-Plattform nicht mehr zum Spielen von Spielen verwendet, also entfernen wir den Eintrag, der mit dem Schlüssel 'points'
verbunden ist. Dann drucken wir das Wörterbuch aus, um zu bestätigen, dass das Element gelöscht wurde:
Output{'online': False, 'username': 'JOctopus', 'followers': 481}
Die Zeile del jesse['points']
entfernt das Schlüssel-Wert-Paar 'points': 723
aus dem Wörterbuch jesse
.
Wenn wir ein Wörterbuch von all seinen Werten löschen möchten, können wir dies mit der Methode dict.clear()
tun. Dadurch bleibt ein gegebenes Wörterbuch erhalten, falls wir es später im Programm verwenden müssen, aber es enthält keine Elemente mehr.
Lassen Sie uns alle Elemente im Wörterbuch jesse
entfernen:
Output{}
Die Ausgabe zeigt, dass wir jetzt ein leeres Wörterbuch ohne Schlüssel-Wert-Paare haben.
Wenn wir ein bestimmtes Wörterbuch nicht mehr benötigen, können wir del
verwenden, um es vollständig loszuwerden:
Wenn wir nach dem Löschen des Wörterbuchs jesse
einen Aufruf von print()
durchführen, erhalten wir folgenden Fehler:
Output...
NameError: name 'jesse' is not defined
Weil Wörterbücher veränderbare Datentypen sind, können sie ergänzt, verändert und Elemente hinzugefügt sowie gelöscht werden.
Schlussfolgerung
In diesem Tutorial wurde die Datenstruktur Wörterbuch in Python behandelt. Wörterbücher bestehen aus Schlüssel-Wert-Paaren und bieten eine Möglichkeit, Daten ohne Verwendung von Indizierung zu speichern. Dadurch können wir Werte basierend auf ihrer Bedeutung und Beziehung zu anderen Datentypen abrufen.
Von hier aus können Sie mehr über andere Datentypen in unserem Tutorial „Verständnis von Datentypen“ erfahren.
Sie können den Dictionary-Datentyp in Programmierprojekten wie Web-Scraping mit Scrapy sehen.
Source:
https://www.digitalocean.com/community/tutorials/understanding-dictionaries-in-python-3