Ordbogen er en uordnet samling af dataværdier i Python, der bruges til lagring af dataværdier såsom kort. Ordbogen indeholder nøgle-værdi-par i stedet for at holde en enkelt værdi som et element ligesom andre datatyper. Nøglen implementeret i ordbogen skal være unik og uforanderlig. Det vil sige, at Python-tuplen kan være en nøgle, men Python-listen kan ikke være en nøgle i ordbogen. Vi kan oprette en ordbog ved at placere en sekvens af elementer inden for de krøllede parenteser {}, et komma ',' kan adskille værdierne.
Eksempel 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])
Produktion:
Dictionary: {1: 'A', 2: 'B', 3: 'C', 4: 'D'} key pair 1: A key pair 3: C
Men hvis vi prøver at udskrive den 5. nøgleværdi, så får vi fejlen pga 'Dict_1' indeholder ikke den 5. nøgleværdi.
Eksempel 2:
Dict_1 = {1: 'A', 2: 'B', 3: 'C', 4: 'D'} print ('Dictionary: ') print (Dict_1) print ('key pair 5: ', Dict_1[5])
Produktion:
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
Når som helst nøglefejl er rejst, kan det blive et problem for brugerne. Vi kan overvinde denne fejl ved at bruge en anden ordbog af Python, som er som en container kendt som Defaultdict . Brugerne kan finde denne ordbog inde i 'samlinger' modul.
defaultdict
Standarddiktet er en ordbog over Python, som er som en beholder til stede inde i 'samlinger'-modulet. Det er en underklasse af ordbogsklassen, som bruges til at returnere det ordbogslignende objekt. Både defaultdict og ordbog har samme funktionalitet, bortset fra at defaultdict aldrig rejser nogen KeyError, da det giver en standardværdi for nøglen, som ikke findes i den ordbog, som brugeren har oprettet.
Syntaks:
defaultdict(default_factory)
Parametre:
Eksempel:
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'])
Produktion:
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
Indre Arbejde af defaultdict
Når vi bruger defaultdict, får vi en ekstra skrivbar instansvariabel og en metode ud over standardordbogsoperationerne. Den skrivbare instansvariabel er parameteren default_factory og __mangler__ er metoden.
Eksempel:
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'])
Produktion:
Dictionary: defaultdict(<function at 0x0000019efc4b58b0>, {'ABC': 1, 'DEF': 2, 'GHI': 3, 'JKL': 4}) key value 1: 1 key value 3: 3 key value 5: This key is not present </function>
Eksempel:
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.__missing__('ABC')) print ('key value 4: ', dict_1['JKL']) print ('key value 5: ', dict_1.__missing__('MNO'))
Produktion:
Dictionary: defaultdict(<function at 0x0000019efc4b5670>, {'ABC': 1, 'DEF': 2, 'GHI': 3, 'JKL': 4}) key value 1: This key is not present key value 4: 4 key value 5: This key is not present </function>
Sådan bruger du 'List' som default_factory
Vi kan sende en listeklasse som argumentet default_factory, og den vil skabe et defaultdict med de værdier, der er sat i listeformat.
Eksempel:
java listeboks
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 ('Dictionary with values as list:') print (dict_1)
Produktion:
Dictionary with values as list: defaultdict(, {7: [7], 8: [8], 9: [9], 10: [10], 11: [11]})
Sådan bruger du 'int' som default_factory
Vi kan sende int-klassen som default_factory-argumentet, og det vil skabe et defaultdict med standardværdien sat som nul.
Eksempel:
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 'J' # 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)
Produktion:
defaultdict(, {1: 2, 2: 3, 3: 1, 4: 2})
Konklusion
I denne tutorial har vi diskuteret defaultdict i Python, og hvordan vi kan udføre forskellige operationer på defaultdict ved at bruge parameteren default_factory.