logo

Standarddict in Python

Das Wörterbuch ist eine ungeordnete Sammlung von Datenwerten in Python, die zum Speichern von Datenwerten wie Karten verwendet wird. Das Wörterbuch enthält Schlüssel-Wert-Paare und nicht wie andere Datentypen einen einzelnen Wert als Element. Der im Wörterbuch implementierte Schlüssel muss eindeutig und unveränderlich sein. Das heißt, das Python-Tupel kann ein Schlüssel sein, aber die Python-Liste kann kein Schlüssel im Wörterbuch sein. Wir können ein Wörterbuch erstellen, indem wir eine Folge von Elementen in die geschweiften Klammern {} einfügen. Ein Komma „,“ kann die Werte trennen.

Beispiel 1:

 Dict_1 = {1: 'A', 2: 'B', 3: 'C', 4: 'D'} print ('Dictionary: ') print (Dict_1) print ('key pair 1: ', Dict_1[1]) print ('key pair 3: ', Dict_1[3]) 

Ausgabe:

 Dictionary: {1: 'A', 2: 'B', 3: 'C', 4: 'D'} key pair 1: A key pair 3: C 

Wenn wir jedoch versuchen, den 5. Schlüsselwert zu drucken, erhalten wir die Fehlermeldung, weil 'Dict_1' enthält nicht den 5. Schlüsselwert.

Beispiel 2:

 Dict_1 = {1: 'A', 2: 'B', 3: 'C', 4: 'D'} print ('Dictionary: ') print (Dict_1) print ('key pair 5: ', Dict_1[5]) 

Ausgabe:

kostenlose ipconfig
 Dictionary: {1: 'A', 2: 'B', 3: 'C', 4: 'D'} --------------------------------------------------------------------------- KeyError Traceback (most recent call last) in 2 print ('Dictionary: ') 3 print (Dict_1) ----> 4 print ('key pair 5: ', Dict_1[5]) KeyError: 5 

Wann immer die Schlüsselfehler Wird eine Fehlermeldung angezeigt, kann dies zu einem Problem für die Benutzer werden. Wir können diesen Fehler beheben, indem wir ein anderes Python-Wörterbuch verwenden, das einem Container namens „ Standarddikt . Die Benutzer finden dieses Wörterbuch im 'Sammlungen' Modul.

defaultdict

Das Standarddikt ist ein Python-Wörterbuch, das wie ein Container im Modul „Sammlungen“ ist. Es handelt sich um eine Unterklasse der Wörterbuchklasse, die zur Rückgabe des wörterbuchähnlichen Objekts verwendet wird. Sowohl defaultdict als auch dictionary haben die gleiche Funktionalität, mit der Ausnahme, dass defaultdict niemals einen KeyError auslöst, da es einen Standardwert für den Schlüssel bereitstellt, der in dem vom Benutzer erstellten Dictionary nicht vorhanden ist.

Syntax:

 defaultdict(default_factory) 

Parameter:

    default_factory:Die Funktion default_factory() gibt den vom Benutzer festgelegten Standardwert für das von ihm definierte Wörterbuch zurück. Fehlt dieses Argument, löst das Wörterbuch den KeyError aus.

Beispiel:

Android-Telefon-Einstellungsmenü
 from collections import defaultdict as DD # Function for returning a default values for the # keys which are not present in the dictionary def default_value(): return 'This key is not present' # Now, we will define the dict dict_1 = DD(default_value) dict_1['ABC'] = 1 dict_1['DEF'] = 2 dict_1['GHI'] = 3 dict_1['JKL'] = 4 print ('Dictionary: ') print (dict_1) print ('key pair 1: ', dict_1['ABC']) print ('key pair 3: ', dict_1['GHI']) print ('key pair 5: ', dict_1['MNO']) 

Ausgabe:

 Dictionary: defaultdict(, {'ABC': 1, 'DEF': 2, 'GHI': 3, 'JKL': 4}) key pair 1: 1 key pair 3: 3 key pair 5: This key is not present 

Innere Funktionsweise von defaultdict

Wenn wir defaultdict verwenden, erhalten wir zusätzlich zu den Standard-Wörterbuchoperationen eine zusätzliche beschreibbare Instanzvariable und eine Methode. Die beschreibbare Instanzvariable ist der Parameter default_factory und __fehlen__ ist die Methode.

    default_factory:Die Funktion default_factory() gibt den vom Benutzer festgelegten Standardwert für das von ihm definierte Wörterbuch zurück.

Beispiel:

 from collections import defaultdict as DD dict_1 = DD(lambda: 'This key is not present') dict_1['ABC'] = 1 dict_1['DEF'] = 2 dict_1['GHI'] = 3 dict_1['JKL'] = 4 print ('Dictionary: ') print (dict_1) print ('key value 1: ', dict_1['ABC']) print ('key value 3: ', dict_1['GHI']) print ('key value 5: ', dict_1['MNO']) 

Ausgabe:

 Dictionary: defaultdict(<function at 0x0000019efc4b58b0>, {&apos;ABC&apos;: 1, &apos;DEF&apos;: 2, &apos;GHI&apos;: 3, &apos;JKL&apos;: 4}) key value 1: 1 key value 3: 3 key value 5: This key is not present </function>
    __fehlen__():Die Funktion __missing__() wird verwendet, um dem Wörterbuch den Standardwert bereitzustellen. Die Funktion __missing__() verwendet default_factory als Argument. Wenn das Argument auf None gesetzt ist, wird ein KeyError ausgelöst. Andernfalls wird ein Standardwert für den angegebenen Schlüssel bereitgestellt. Diese Methode wird im Wesentlichen von aufgerufen __getitem__() Funktion der Klasse dict, wenn der angeforderte Schlüssel nicht gefunden wird. Die Funktion __getitem__() erhöht oder gibt den Wert zurück, der in der Funktion __missing__() vorhanden ist.

Beispiel:

Python filtern
 from collections import defaultdict as DD dict_1 = DD(lambda: &apos;This key is not present&apos;) dict_1[&apos;ABC&apos;] = 1 dict_1[&apos;DEF&apos;] = 2 dict_1[&apos;GHI&apos;] = 3 dict_1[&apos;JKL&apos;] = 4 print (&apos;Dictionary: &apos;) print (dict_1) print (&apos;key value 1: &apos;, dict_1.__missing__(&apos;ABC&apos;)) print (&apos;key value 4: &apos;, dict_1[&apos;JKL&apos;]) print (&apos;key value 5: &apos;, dict_1.__missing__(&apos;MNO&apos;)) 

Ausgabe:

 Dictionary: defaultdict(<function at 0x0000019efc4b5670>, {&apos;ABC&apos;: 1, &apos;DEF&apos;: 2, &apos;GHI&apos;: 3, &apos;JKL&apos;: 4}) key value 1: This key is not present key value 4: 4 key value 5: This key is not present </function>

So verwenden Sie „Liste“ als Standardfabrik

Wir können eine Listenklasse als Argument „default_factory“ übergeben und sie erstellt ein Standarddikt mit den Werten, die im Listenformat festgelegt sind.

Beispiel:

Schauspieler Rekha
 from collections import defaultdict as DD # Defining a dictionary dict_1 = DD(list) for k in range(7, 12): dict_1[k].append(k) print (&apos;Dictionary with values as list:&apos;) print (dict_1) 

Ausgabe:

 Dictionary with values as list: defaultdict(, {7: [7], 8: [8], 9: [9], 10: [10], 11: [11]}) 

So verwenden Sie „int“ als default_factory

Wir können die int-Klasse als Argument „default_factory“ übergeben und es wird ein defaultdict erstellt, dessen Standardwert auf Null gesetzt ist.

Beispiel:

 from collections import defaultdict as DD # Defining the dict dict_1 = DD(int) J = [1, 2, 3, 4, 2, 4, 1, 2] # Now, we will iterate through the list &apos;J&apos; # for keeping the count for k in J: # As, The default value is 0 # so we do not need to # enter the key first dict_1[k] += 1 print(dict_1) 

Ausgabe:

 defaultdict(, {1: 2, 2: 3, 3: 1, 4: 2}) 

Abschluss

In diesem Tutorial haben wir „defaultdict“ in Python besprochen und wie wir mithilfe des Parameters „default_factory“ verschiedene Operationen für „defaultdict“ ausführen können.