logo

Standaarddict in Python

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:

    standaard_fabriek:De functie default_factory() retourneert de standaardwaarde die door de gebruiker is ingesteld voor het door hem gedefinieerde woordenboek. Als dit argument ontbreekt, verhoogt het woordenboek de KeyError.

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.

    standaard_fabriek:De functie default_factory() retourneert de standaardwaarde die door de gebruiker is ingesteld voor het door hem gedefinieerde woordenboek.

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>, {&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>
    __missend__():De functie __missing__() wordt gebruikt om de standaardwaarde aan het woordenboek te geven. De functie __missing__() neemt default_factory als argument, en als het argument is ingesteld op Geen, wordt er een KeyError gegenereerd; anders zal het een standaardwaarde voor de gegeven sleutel opleveren. Deze methode wordt in wezen genoemd door de __getitem__() functie van de dict-klasse wanneer de gevraagde sleutel niet wordt gevonden. De functie __getitem__() verhoogt of retourneert de waarde die aanwezig is in de functie __missing__().

Voorbeeld:

 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;)) 

Uitgang:

 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>

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 (&apos;Dictionary with values as list:&apos;) 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 &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) 

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