Het woordenboek is een ongeordende verzameling gegevenswaarden in Python die wordt gebruikt voor het opslaan van gegevenswaarden zoals kaarten. Het woordenboek bevat sleutel-waardeparen in plaats van één enkele waarde als element vast te houden, zoals andere gegevenstypen. De sleutel die in het woordenboek wordt geïmplementeerd, moet uniek en onveranderlijk zijn. Dat wil zeggen dat het Python-tupel een sleutel kan zijn, maar de Python-lijst kan geen sleutel in het woordenboek zijn. We kunnen een woordenboek maken door een reeks elementen tussen de accolades {} te plaatsen. Een komma ',' kan de waarden scheiden.
Voorbeeld 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])
Uitgang:
Dictionary: {1: 'A', 2: 'B', 3: 'C', 4: 'D'} key pair 1: A key pair 3: C
Maar als we dan de vijfde sleutelwaarde proberen af te drukken, krijgen we de foutmelding omdat 'dict_1' bevat niet de vijfde sleutelwaarde.
Voorbeeld 2:
Dict_1 = {1: 'A', 2: 'B', 3: 'C', 4: 'D'} print ('Dictionary: ') print (Dict_1) print ('key pair 5: ', Dict_1[5])
Uitgang:
Avl boom
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
Wanneer de sleutelFout wordt ter sprake gebracht, kan dit een probleem worden voor de gebruikers. We kunnen deze fout overwinnen door een ander woordenboek van Python te gebruiken, dat lijkt op een container die bekend staat als Standaarddict . De gebruikers kunnen dit woordenboek vinden in de 'collecties' module.
wanbetaling
Het standaarddictaat is een woordenboek van Python, dat lijkt op een container die aanwezig is in de module 'collecties'. Het is een subklasse van de woordenboekklasse die wordt gebruikt voor het retourneren van het woordenboekachtige object. Zowel defaultdict als woordenboek hebben dezelfde functionaliteit, behalve dat defaultdict nooit een KeyError genereert, omdat het een standaardwaarde voor de sleutel biedt, die niet bestaat in het woordenboek dat door de gebruiker is gemaakt.
Syntaxis:
defaultdict(default_factory)
Parameters:
Voorbeeld:
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'])
Uitgang:
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
Innerlijke werking van het standaarddictaat
Wanneer we defaultdict gebruiken, krijgen we een extra beschrijfbare instantievariabele en één methode naast de standaard woordenboekbewerkingen. De beschrijfbare instantievariabele is de parameter default_factory en __missend__ is de methode.
Voorbeeld:
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'])
Uitgang:
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>
Voorbeeld:
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'))
Uitgang:
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>
Hoe u 'Lijst' als standaard_fabriek gebruikt
We kunnen een lijstklasse doorgeven als het argument default_factory, en het zal een standaarddictaat creëren met de waarden die in lijstformaat zijn ingesteld.
Voorbeeld:
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)
Uitgang:
Dictionary with values as list: defaultdict(, {7: [7], 8: [8], 9: [9], 10: [10], 11: [11]})
Hoe 'int' als default_factory te gebruiken
We kunnen de klasse int doorgeven als het argument default_factory, en er wordt een defaultdict gemaakt met de standaardwaarde ingesteld op nul.
Voorbeeld:
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)
Uitgang:
defaultdict(, {1: 2, 2: 3, 3: 1, 4: 2})
Conclusie
In deze tutorial hebben we defaultdict in Python besproken en hoe we verschillende bewerkingen op defaultdict kunnen uitvoeren met behulp van de parameter default_factory.
Oracle SQL is niet gelijk