In diesem Artikel befassen wir uns mit dem Datensammlungstyp „Dictionary“. Datensammlungstypen sind Datenstrukturen in Python. Sie ermöglichen die Arbeit mit Datensammlungen für verschiedene Zwecke. Python-Dictionaries werden für eine Vielzahl von Funktionen verwendet, von der Speicherung von Nutzerinformationen bis hin zur Speicherung von Benutzersammlungen.
Im Folgenden werden wir erläutern, was es mit dem Datentyp „Dictionary“ auf sich hat und wie er funktioniert. Außerdem sehen wir uns einige Beispiele an, wie ein typisches Python-Dictionary aussieht und wie man es verwenden kann.
Was ist ein Dictionary in Python?
Ein Python-Dictionary ist eine Sammlung von Schlüssel-Werte-Paaren (auch Key-Value Pairs genannt). Es handelt sich um einen ungeordneten und veränderbaren Datentyp in Python, der wie ein assoziatives Array oder eine Hashtabelle funktioniert. Ein Dictionary kann eine beliebige Anzahl von Elementen speichern, und jedes Element kann über seinen zugehörigen Schlüssel angesprochen werden.
Dictionaries können Änderungen nach der Erstellung unterstützen, verhindern aber konsequent doppelte Einträge. Alle Schlüssel-Wert-Paare müssen eindeutig sein. Sobald Sie ein Dictionary erstellt haben, können Sie über den Schlüssel zu jedem Wert auf das entsprechende Element zugreifen.
So erstellen Sie ein Dictionary in Python
Ein Dictionary in Python zu erstellen ist sehr einfach. Zunächst deklarieren Sie eine Variable und weisen ihr dann mit dem Zuweisungsoperator – = – Daten zu. An der geschweiften Klammer um die zugewiesenen Daten – {} – erkennt man, dass es sich um ein Dictionary handelt. Sehen wir uns an, wie man am besten vorgeht und das in überschaubare Teile zerlegt.
Für den Rest dieses Beitrags gehen wir davon aus, dass wir mit dem folgenden Dictionary-Objekt arbeiten:
snekDict = { "Cobra": "Elapids", "Ball": "Python", "Trimeresurus": "Viper"}
Im obenstehenden Dictionary haben wir eine Sammlung von Schlangen und den entsprechenden Arten. Die Ausgabe auf der Konsole erfolgt mit der folgenden Zeile:
print(snekDict)
Zugriff auf Dictionary-Elemente in Python
Es gibt mehrere Möglichkeiten, auf die Elemente in einem Python-Dictionary zuzugreifen. Python bietet integrierte Methoden für die Interaktion mit Dictionaries. Die Standardmethode für den Zugriff auf Elemente ist jedoch die Klammer-Notation, die im Folgenden beschrieben wird.
Klammer-Notation in Python-Dictionaries
Um auf ein einzelnes Element im Dictionary zuzugreifen, können Sie die Klammer-Notation verwenden, um ein Element mit seinen Schlüsseln anzusprechen. Um beispielsweise die Schlangenart Kobra zu ermitteln, verwenden Sie die folgende Syntax, um auf das gewünschte Element zuzugreifen.
print(snekDict["Cobra"])
Diese Codezeile würde die folgende Antwort auf der Konsole ausgeben:
Elapids
Die get()-Methode in Python-Dictionary
Neben der Klammer-Notation gibt es noch eine weitere Methode, um Informationen für ein Dictionary in Python zu erhalten: get(). Die „get“-Methode gibt – ähnlich wie die Klammer-Notation – einen Wert zurück, der auf dem angegebenen Schlüssel basiert. Sehen wir uns an, wie das funktioniert:
x = snekDict.get("Cobra")
Die keys()-Methode in Python-Dictionary
Die „keys“-Methode greift auf alle Schlüssel des Dictionary zu. Damit können wir alle verfügbaren Schlüssel überprüfen.
x = snekDict.keys() print(x)
Die Ausführung dieser Codezeile in unserem Dictionary würde eine Liste aller aktuellen Schlüssel innerhalb des Dictionary zurückgeben. Die Ausgabe auf der Konsole würde wie folgt aussehen:
dict_keys(['Cobra', 'Ball', 'Trimeresurus'])
Die values()-Methode in Python-Dictionary
Die „values“-Methode ähnelt der „keys“-Methode, gibt aber alle Werte des Dictionary zurück. Die Methode „values()“ ist aus vielen Gründen nützlich, z. B. wenn ein Wert geändert werden muss. Dann kann diese Methode feststellen, welche Werte im Dictionary vorhanden sind und wo sie sich befinden.
x = snekDict.values() print(x)
Nach der Ausgabe der Ergebnisse in die Konsole würde man folgendes sehen:
dict_items( ['Elapid', 'Python', 'Viper'] )
Die items()-Methode in Python-Dictionary
Die Python-Methode „items“ gibt die gesamte Länge des Dictionary zurück, einschließlich der darin enthaltenen Schlüssel und Werte. Diese Methode ist nützlich, wenn wir das Dictionary ändern müssen, was oft durch Automatisierung geschieht. Automatisierung ist eine häufige Anwendung in Python, und Methoden wie diese ermöglichen es den Nutzenden, das Dictionary nach bestimmten Bedingungen zu modifizieren.
x = snekDict.items() print(x)
Ähnlich wie die Methoden „keys“ und „values“ gibt diese Methode eine vollständige Liste des Dictionary zurück, die sowohl Schlüssel als auch Werte enthält:
dict_items( [ ('Cobra', 'Elapid'), ('Ball', 'Python'), ('Trimeresurus', 'Viper') ] )
So fügt man Einträge zu einem Python-Dictionary hinzu
Elemente in einem Dictionary können nach der Erstellung geändert werden, indem neue Einträge zum Dictionary hinzugefügt werden. Diese Möglichkeit, dem Dictionary neue Einträge hinzuzufügen, macht es zu einer guten Wahl für langfristige Datensammlungen, die wahrscheinlich wachsen werden.
Die Klammer-Notation kann verwendet werden, um ein neues Element hinzuzufügen, einen neuen Schlüssel zu definieren und einen neuen Wert zuzuweisen. Sehen wir uns zunächst an, wie man dem Python-Dictionary mit der Klammer-Notation etwas hinzufügt:
snekDict[ "Rattlesnake" ] = "Viper"
Dieser Code fügt dem Dictionary ein neues Element mit dem Schlüssel „Habitat“ und dem Wert „Tropen“ hinzu.
Die andere Möglichkeit, neue Elemente hinzuzufügen, besteht darin, vorhandene Elemente zu aktualisieren. Die Aktualisierungsmethode updatet ein vorhandenes Element und fügt es, falls es noch nicht vorhanden ist, dem Dictionary hinzu.
snekDict.update({"Rattlesnake": "Pit Viper"})
Diese Zeile aktualisiert das vorhandene Element mit dem Schlüssel „Habitat“ und ändert seinen Wert von „Wüste“ in „Tropen“, wodurch die falsche Information korrigiert wird.
Als Nächstes sehen wir uns an, wie Elemente aus dem Dictionary entfernt werden können, und besprechen dann einige der gebräuchlichsten Methoden, die mit dem Dictionary-Objekt verwendet werden.
So entfernt man Elemente aus einem Python-Dictionary
Es gibt verschiedene Gründe, weshalb ein Element aus einem Python-Dictionary entfernt werden muss. Im Falle unseres snekDict müssten wir zum Beispiel eine Schlange aus unserem Dictionary entfernen, wenn sie für unsere Zwecke unbrauchbar wird. Um zu sehen, wie dies mit den verschiedenen verfügbaren Techniken funktioniert, entfernen wir ein Element aus unserer Liste.
Entfernen eines Elements mit der pop()-Methode
Die pop-Methode entfernt ein Element aus dem Dictionary auf der Grundlage des Zielschlüssels und ermöglicht es uns, das Dictionary nach Bedarf umzugestalten.
snekDict.pop("Cobra")
Diese Methode entfernt das Element aus dem Dictionary und gibt den Wert des Zielschlüssels zurück.
Entfernen eines Elements mit der popitem()-Methode
Die „popitem“-Methode entfernt das letzte Element aus dem Dictionary. Sie ist daher nur eingeschränkt anzuwenden.
snekDict.popItem()
Entfernen eines Elements mit dem Schlüsselwort „del“
Das Schlüsselwort „del“ wird vor einem Dictionary-Aufruf für das Zielelement verwendet, wobei der Schlüssel in Klammern angegeben wird. Dieser Vorgang mag verwirrend erscheinen, ist aber sehr einfach. Sehen wir uns ein Beispiel für die Verwendung des Schlüsselworts del an:
del snekDict["RattleSnake"]
Das Schlüsselwort „del“ kann auch zum Löschen ganzer Dictionaries verwendet werden, was für viele Datenanforderungen nützlich ist, z. B. zum Löschen von Nutzerdaten für eine Login-Sitzung.
del snekDict
Entfernen von Elementen mit der clear()-Methode
Die „clear“-Methode löscht den Inhalt eines Dictionary, lässt aber das Dictionary-Objekt intakt:
snekDict.clear()
Andere Methoden in Python-Dictionary
Drei weitere Methoden wurden bisher noch nicht erwähnt, von denen jede ihre eigenen Vorteile hat. Sehen wir uns diese drei an, und wie Sie sie sinnvoll einsetzen können.
Die copy()-Methode in Python-Dictionary
Die „copy“-Methode erstellt eine Kopie des ursprünglichen Ziel-Dictionary.
Diese Methode ist nützlich, um Daten vorübergehend zu speichern, bevor ein Update durchgeführt wird. Sie ist auch nützlich, um Daten zu beobachten oder zu manipulieren, während die ursprünglichen Informationen erhalten bleiben, was die Grundlage für die Speicherung von Sicherungsdaten ist.
Lassen Sie uns vor diesem Hintergrund die Funktionsweise anschauen, um noch weitere Anwendungsfälle zu finden.
tempSnekDict = snekDict.copy()
Hier gibt es nicht viel zu sehen - es wird einfach eine Kopie erstellt und der Variablen zugewiesen.
Die fromKeys()-Methode in Python-Dictionary
Die „fromKeys“-Methode gibt ein Dictionary zurück, das auf den angegebenen Schlüsseln basiert, und hat einen optionalen Parameter, der den Wert jedes Dictionary-Elements angibt.
Dies kann sehr nützlich sein, um ein neues Dictionary mit temporären Informationen zu initialisieren, wie z. B. Ausgangswerte oder Nachrichten zum Hinzufügen oder Aktualisieren von Informationen. Wenn der zweite Parameter nicht angegeben wird, ist das zurückgegebene Objekt ein neues Dictionary mit nicht zugewiesenen Werten.
snekTraitsDict = dict.fromkeys(('Features', 'Colors', 'Size'), "default")
In diesem Fall wird ein Dictionary mit dem Namen „snekTraitsDict“ erstellt, das drei Schlüssel enthält, die alle denselben Standardwert haben.
Sie können auch eine Liste von Werten erstellen und diese als Einzelwert zu den Schlüsseln hinzufügen:
snekTraitsDict = dict.fromkeys(('Features', 'Colors', 'Size') , ("null", "red", 0))
Jedem der Schlüssel würde der Wert zugewiesen, der als zweiter Parameter angegeben wurde, und die Ausgabe des Ergebnisses würde wie folgt aussehen:
{ 'Features': ('null', 'red', 0), 'Colors': ('null', 'red', 0), 'Size': ('null', 'red', 0) }
Die setDefault()-Methode in Python-Dictionary
Die „setDefault“-Methode akzeptiert zwei Parameter: Der erste ist ein Schlüssel, der zweite ein Standardwert, wenn der Schlüssel nicht existiert. Der erste Parameter wird verwendet, um den Wert eines Schlüssels zurückzugeben. Wenn der Schlüssel nicht im Dictionary vorhanden ist, wird ein Standardwert aus dem zweiten Parameter hinzugefügt.
Wenn wir „setDefault“ für unser snekDict Dictionary-Objekt verwenden, können wir prüfen, ob eine Schlange bereits in der Sammlung vorhanden ist, und wenn nicht, diese hinzufügen und dem Element einen Standardwert zuweisen:
x = snekDict.setdefault("Rattlesnake", "Viper")
In diesem Beispiel wissen wir, dass wir die Klapperschlange bereits zu unserem Dictionary hinzugefügt haben. Daher wird der angegebene Wert ignoriert und der Wert des Elements „Klapperschlange“ zurückgegeben. Wäre dieser Schlüssel noch nicht vorhanden, würde der Schlüssel mit dem Standardwert „Viper“ hinzugefügt.
Mit Python-Dictionary die eigenen Strukturen optimieren
Python-Dictionaries sind sehr vielseitig und vielfältig einsetzbar. Noch besser werden Dictionaries, wenn man mehrere von ihnen ineinander verschachtelt, bei Bedarf in mehreren tiefen Schichten.
Erst in der praktischen Anwendung prägt sich neu Gelerntes ein. Dieser Artikel ist ein guter Leitfaden, um Python-Dictionaries von Anfang bis Ende durchzuspielen. Nun sind Sie dran. Versuchen Sie eigene Datenstrukturen zu erstellen, um letztendlich einen Prototyp für Ihre Datenbank zu entwickeln, der Ihrem Bedarf gerecht wird.
Titelbild: Yumi mini / iStock / Getty Images Plus