Vārdnīca ir nesakārtota Python datu vērtību kolekcija, ko izmanto datu vērtību, piemēram, karšu, glabāšanai. Vārdnīcā ir atslēgu un vērtību pāri, nevis viena vērtība kā elements, tāpat kā citi datu veidi. Vārdnīcā ieviestajai atslēgai jābūt unikālai un nemainīgai. Tas ir, Python kortežs var būt atslēga, bet Python saraksts nevar būt atslēga vārdnīcā. Mēs varam izveidot vārdnīcu, ievietojot elementu secību cirtainajās iekavās {}, komats ',' var atdalīt vērtības.
1. piemērs:
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])
Izvade:
Dictionary: {1: 'A', 2: 'B', 3: 'C', 4: 'D'} key pair 1: A key pair 3: C
Bet, ja mēģināsim izdrukāt 5. atslēgas vērtību, mēs saņemsim kļūdu, jo 'Dict_1' nesatur 5. atslēgas vērtību.
2. piemērs:
Dict_1 = {1: 'A', 2: 'B', 3: 'C', 4: 'D'} print ('Dictionary: ') print (Dict_1) print ('key pair 5: ', Dict_1[5])
Izvade:
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
Ikreiz, kad atslēgas kļūda tiek paaugstināts, tas var kļūt par problēmu lietotājiem. Mēs varam pārvarēt šo kļūdu, izmantojot citu Python vārdnīcu, kas ir kā konteiners, kas pazīstams kā Defaultdict . Lietotāji var atrast šo vārdnīcu iekšā 'kolekcijas' modulis.
noklusējuma diktāts
Noklusējuma diktāts ir Python vārdnīca, kas ir kā konteiners, kas atrodas modulī “kolekcijas”. Tā ir vārdnīcas klases apakšklase, ko izmanto vārdnīcai līdzīga objekta atgriešanai. Gan defaultdict, gan vārdnīcai ir viena un tā pati funkcionalitāte, izņemot to, ka defaultdict nekad neizraisa KeyError, jo tā nodrošina atslēgas noklusējuma vērtību, kas neeksistē lietotāja izveidotajā vārdnīcā.
Sintakse:
defaultdict(default_factory)
Parametri:
Piemērs:
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'])
Izvade:
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
Noklusējuma diktatora iekšējais darbs
Lietojot defaultdict, papildus standarta vārdnīcas darbībām mēs iegūstam papildu rakstāmu gadījumu mainīgo un vienu metodi. Rakstāmais instances mainīgais ir default_factory parametrs un __trūkst__ ir metode.
Piemērs:
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'])
Izvade:
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>
Piemērs:
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'))
Izvade:
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>
Kā lietot 'Sarakstu' kā default_factory
Mēs varam nodot saraksta klasi kā default_factory argumentu, un tas izveidos noklusējuma diktātu ar vērtībām, kas ir iestatītas saraksta formātā.
Piemērs:
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)
Izvade:
Dictionary with values as list: defaultdict(, {7: [7], 8: [8], 9: [9], 10: [10], 11: [11]})
Kā lietot 'int' kā default_factory
Mēs varam nodot int klasi kā argumentu default_factory, un tas izveidos defaultdict ar noklusējuma vērtību, kas iestatīta kā nulle.
Piemērs:
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)
Izvade:
defaultdict(, {1: 2, 2: 3, 3: 1, 4: 2})
Secinājums
Šajā apmācībā mēs esam apsprieduši noklusējuma diktātu Python un to, kā mēs varam veikt dažādas darbības ar defaultdict, izmantojot parametru default_factory.