Python

Python-Defaultdict

Python-Defaultdict

Python bietet viele integrierte Datenstrukturen wie Listen, Tupel und Wörterbücher, um Daten effizient zu speichern und zu verwalten. Wörterbücher bieten eine einfache Möglichkeit, Daten als Schlüssel-Wert-Paare zu speichern. Ein Schlüssel fungiert als Index und wird zum Abrufen von Daten verwendet. Schlüssel sollten im gesamten Wörterbuch eindeutig und unveränderlich sein. Schlüssel sind meist Zeichenfolgen und ganze Zahlen, obwohl der Wert eines Schlüssels von jedem beliebigen Typ sein kann, z. B. eine ganze Zahl, ein String, eine Gleitkommazahl oder eine komplexe Zahl. In der Zwischenzeit kann ein Wörterbuch eine Sammlung enthalten, z. B. eine Liste, ein Tupel oder eine andere Art von Wörterbuch. Ein Wörterbuch in Python wird mit einem Paar geschweifter Klammern erstellt, in denen jedes Schlüssel-Wert-Paar durch ein Komma getrennt ist.

Was ist, wenn Sie versuchen, auf einen bestimmten Schlüssel in einem Wörterbuch zuzugreifen oder ihn zu ändern, der nicht existiert?? Nun, in diesem Fall löst der Python-Interpreter den Fehler „KeyError“ aus und beendet die Ausführung des Programms.

Schauen wir uns ein Beispiel für den Fehler „KeyError“ an.

#Wörterbuch erstellen
my_dict= 1:"Hallo",2:"Willkommen",3:"LinuxHint"
#auf einen Schlüssel zugreifen, der nicht existiert
mein_dict[4]

Ausgabe

Um diesen Fehler zu behandeln, stellt Python den Typ defaultdict zur Verfügung, eine Wörterbuchklasse, die im Sammlungsmodul zu finden ist. Dieser Artikel behandelt das Python-Defaultdict im Detail.

Erklärung und Beispiele für defaultdict

Das defaultdict ist die Alternative zum Python-Wörterbuch. Es gibt Dictionary-Typ-Objekte zurück. Das defaultdict ist eine Unterklasse von dict. Im Falle eines fehlenden Schlüssels wird anstelle eines „KeyError“-Fehlers der Standardwert für den nicht vorhandenen Schlüssel bereitgestellt. Die Syntax von defaultdict lautet wie folgt:

defaultdict(default_factory)

Die Funktion defaultdict verwendet den Parameter default_factory als Argument. Die Funktion default_factory gibt den Standardwert für das definierte defaultdict zurück. Wenn wir versuchen, auf einen fehlenden Schlüssel zuzugreifen oder diesen zu ändern, gibt die Funktion default_factory den Standardwert als Ergebnis zurück. Wenn die Funktion default_factory fehlt, gibt die defaultdic einen „KeyError“-Fehler aus, wenn irgendwelche Schlüssel fehlen.

Zuerst implementieren wir ein defaultdic in unserem Python-Skript, um sowohl auf vorhandene als auch auf fehlende Schlüssel zuzugreifen.

#importieren Sie das Defaultdict aus dem Sammlungsmodul
aus Sammlungen importieren defaultdict
#definieren einer Funktion, um den Standardwert zurückzugeben
def my_func():
print("Der Schlüssel ist nicht definiert")
#Defaultdict erstellen
#übergeben von my_func() als Argument an defaultdict
my_dict =defaultdict(my_func)
#Definieren der Schlüssel und Werte
my_dict[1]="Hallo"
my_dict[2]="Willkommen"
my_dict[3]="LinuxHinweis"
#Zugriff auf die Werte mit Schlüsseln
print(my_dict[1])
print(my_dict[2])
print(my_dict[3])
#auf den fehlenden oder nicht definierten Schlüssel zugreifen
mein_dict[4]

Ausgabe

Die [4] ist der fehlende Schlüssel. Anstatt also einen „KeyError“-Fehler auszulösen, ruft es die default_factory-Funktion auf, die den Standardwert zurückgibt.


Eine Lambda-Funktion, bekannt als anonyme Funktion, kann auch als Parameter default_factory verwendet werden.

Als nächstes implementieren wir eine Lambda-Funktion und übergeben sie als Argument an das defaultdict.

#importieren Sie das Defaultdict aus dem Sammlungsmodul
aus Sammlungen importieren defaultdict
#Defaultdict erstellen
#Übergeben der Lamnda-Funktion als Argument an defaultdict
my_dict =defaultdict(lambda:"Der Schlüssel ist nicht definiert")
#Definieren der Schlüssel und Werte
my_dict[1]="Hallo"
my_dict[2]="Willkommen"
my_dict[3]="LinuxHinweis"
#Zugriff auf die Werte mit Schlüsseln
print(my_dict[1])
print(my_dict[2])
print(my_dict[3])
#auf den fehlenden oder nicht definierten Schlüssel zugreifen
print(my_dict[4])

Das defaultdict ruft default_factory auf, um den Standardwert bereitzustellen, aber die Funktion __missing()__ liefert den Standardwert. Die Funktion __missing()__ ist eine integrierte Funktion in Python, die den Parameter default_factory als Argument verwendet takes. Wenn der Parameter default_factory nicht definiert ist, löst die Funktion __missing()__ den Fehler „KeyError“ aus.

Hier verwenden wir die Funktion __missing()__ in unserem Python-Skript.

#importieren Sie das Defaultdict aus dem Sammlungsmodul
aus Sammlungen importieren defaultdict
#definieren einer Funktion, um den Standardwert zurückzugeben
def my_func():
print("Der Schlüssel ist nicht definiert")
#Defaultdict erstellen
#übergeben von my_func() als Argument an defaultdict
my_dict =defaultdict(my_func)
#Definieren der Schlüssel und Werte
my_dict[1]="LinuxHinweis"
#Zugriff auf die Werte mit Schlüsseln
print(my_dict[1])
#auf den fehlenden oder nicht definierten Schlüssel zugreifen
mein_dict.__fehlt__(2)

Ausgabe

Die Klassen list und int können auch als default_factory-Parameter mit defaultdict . verwendet werden.

Als default_factory Parameter auflisten

Das defaultdict wird mit den Listenwerten erstellt, wenn der Listenklasse ein default_factory-Parameter übergeben wird.

#importieren Sie das Defaultdict aus dem Sammlungsmodul
aus Sammlungen importieren defaultdict
# ein Defaultdict definieren
# Listenklasse als default_factory übergeben
my_dict = defaultdict(Liste)
für i im Bereich (7):
mein_dict[i].anhängen(i)
#Werte drucken
print(mein_dict)

Ausgabe

Die Ausgabe zeigt die Werte in der Liste. Wie Sie sehen, wurde ein Defaultdict erstellt, das den Schlüssel und die Werte enthält.

Ganzzahlen als default_factory Parameter

Wenn wir die Klasse int als Parameter default_factory übergeben, können wir ein defaultdict erstellen, das nur ganze Zahlen enthält. Wir erstellen eine Liste von ganzen Zahlen und speichern sie dann im defaultdict.

#importieren Sie das Defaultdict aus dem Sammlungsmodul
aus Sammlungen importieren defaultdict
# ein Defaultdict definieren
# Int-Klasse als default_factory übergeben
my_dict = defaultdict(int)
#eine Liste von ganzen Zahlen erstellen
meine_liste=[1,2,3]
für i in my_list:
mein_dict[i]+=1
#Werte drucken
print(mein_dict)

Ausgabe

In der gegebenen Ausgabe sind die ganzzahligen Werte vor dem Doppelpunkt (:) Schlüssel, während die ganzzahligen Werte nach dem Doppelpunkt Werte sind.

Fazit

Das dafualtdict ist eine wörterbuchähnliche Klasse, die im Sammlungsmodul vorhanden ist. Es funktioniert wie ein Python-Wörterbuch, löst aber keinen „KeyError“ aus, wenn ein Schlüssel nicht gefunden wird. Dieser Artikel erklärt das Defaultdict ausführlich mit verschiedenen Beispielen.

Installieren Sie das neueste OpenRA-Strategiespiel auf Ubuntu Linux
OpenRA ist eine Libre/Free Real Time Strategy Game Engine, die die frühen Westwood-Spiele wie den Klassiker Command & Conquer: Red Alert Red nachbilde...
Installieren Sie den neuesten Dolphin Emulator für Gamecube & Wii unter Linux
Mit dem Dolphin Emulator können Sie Ihre ausgewählten Gamecube- und Wii-Spiele auf Linux-Personalcomputern (PC) spielen. Als frei verfügbarer Open-So...
So verwenden Sie die GameConqueror-Cheat-Engine unter Linux
Der Artikel enthält eine Anleitung zur Verwendung der GameConqueror-Cheat-Engine unter Linux. Viele Benutzer, die Spiele unter Windows spielen, verwen...