Ordboken er en uordnet samling av dataverdier i Python som brukes til å lagre dataverdier som kart. Ordboken inneholder nøkkel-verdi-par i stedet for å holde en enkelt verdi som et element som andre datatyper. Nøkkelen implementert i ordboken må være unik og uforanderlig. Det vil si at Python-tuppelen kan være en nøkkel, men Python-listen kan ikke være en nøkkel i ordboken. Vi kan lage en ordbok ved å plassere en sekvens av elementer innenfor de krøllede parentesene {}, et komma ',' kan skille verdiene.
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])
Produksjon:
Dictionary: {1: 'A', 2: 'B', 3: 'C', 4: 'D'} key pair 1: A key pair 3: C
Men hvis vi prøver å skrive ut den 5. nøkkelverdien så får vi feilen pga 'Dict_1' inneholder ikke den 5. nøkkelverdien.
Eksempel 2:
Dict_1 = {1: 'A', 2: 'B', 3: 'C', 4: 'D'} print ('Dictionary: ') print (Dict_1) print ('key pair 5: ', Dict_1[5])
Produksjon:
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 keyError er tatt opp, kan det bli et problem for brukerne. Vi kan overvinne denne feilen ved å bruke en annen ordbok for Python, som er som en beholder kjent som Defaultdict . Brukerne kan finne denne ordboken i 'samlinger' modul.
defaultdict
Standarddiktet er en ordbok av Python, som er som en beholder tilstede i 'samlinger'-modulen. Det er en underklasse av ordbokklassen som brukes til å returnere det ordboklignende objektet. Både defaultdict og ordbok har samme funksjonalitet, bortsett fra at defaultdict aldri gir noen KeyError, da det gir en standardverdi for nøkkelen, som ikke finnes i ordboken opprettet av brukeren.
Syntaks:
defaultdict(default_factory)
Parametere:
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'])
Produksjon:
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 Arbeid av defaultdict
Når vi bruker defaultdict, får vi en ekstra skrivbar forekomstvariabel og én metode i tillegg til standard ordbokoperasjoner. Den skrivbare forekomstvariabelen er parameteren default_factory og __savnet__ 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'])
Produksjon:
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'))
Produksjon:
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>
Hvordan bruke 'List' som default_factory
Vi kan sende en listeklasse som default_factory-argumentet, og den vil lage et defaultdict med verdiene som er satt i listeformat.
Eksempel:
java lokal dato
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)
Produksjon:
Dictionary with values as list: defaultdict(, {7: [7], 8: [8], 9: [9], 10: [10], 11: [11]})
Hvordan bruke 'int' som default_factory
Vi kan sende int-klassen som default_factory-argumentet, og det vil lage et defaultdict med standardverdien satt til null.
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)
Produksjon:
defaultdict(, {1: 2, 2: 3, 3: 1, 4: 2})
Konklusjon
I denne opplæringen har vi diskutert defaultdict i Python og hvordan vi kan utføre forskjellige operasjoner på defaultdict ved å bruke parameteren default_factory.