logo

Alapértelmezett parancs a Pythonban

A szótár a Pythonban található adatértékek rendezetlen gyűjteménye, amelyet adatértékek, például térképek tárolására használnak. A szótár kulcs-érték párokat tartalmaz, ahelyett, hogy egyetlen értéket tartana meg elemként, mint más adattípusok. A szótárban megvalósított kulcsnak egyedinek és megváltoztathatatlannak kell lennie. Vagyis a Python sor lehet kulcs, de a Python lista nem lehet kulcs a szótárban. Létrehozhatunk szótárt úgy, hogy egy sor elemet helyezünk el a göndör zárójelek közé {}, a vessző ',' elválaszthatja az értékeket.

1. példa:

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

Kimenet:

 Dictionary: {1: 'A', 2: 'B', 3: 'C', 4: 'D'} key pair 1: A key pair 3: C 

De ha akkor megpróbáljuk kinyomtatni az 5. kulcs értékét, akkor a hibát kapjuk, mert 'Dict_1' nem tartalmazza az 5. kulcsértéket.

2. példa:

 Dict_1 = {1: 'A', 2: 'B', 3: 'C', 4: 'D'} print ('Dictionary: ') print (Dict_1) print ('key pair 5: ', Dict_1[5]) 

Kimenet:

hogyan kell java-ban frissíteni
 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 

Valahányszor a keyError felmerül, problémát jelenthet a felhasználók számára. Ezt a hibát kiküszöbölhetjük egy másik Python szótár használatával, amely olyan, mint egy konténer Defaultdict . A felhasználók megtalálhatják ezt a szótárt a 'gyűjtemények' modult.

defaultdict

Az alapértelmezett szótár a Python szótára, amely olyan, mint egy konténer, amely a „gyűjtemények” modulban található. Ez a szótár osztály egy alosztálya, amely a szótárszerű objektum visszaadására szolgál. Mind a defaultdict, mind a dictionary ugyanazokkal a funkciókkal rendelkezik, kivéve, hogy a defaultdict soha nem okoz KeyError-t, mivel ez egy alapértelmezett értéket ad a kulcsnak, amely nem létezik a felhasználó által létrehozott szótárban.

Szintaxis:

 defaultdict(default_factory) 

Paraméterek:

    default_factory:A default_factory() függvény a felhasználó által az általa meghatározott szótárhoz beállított alapértelmezett értéket adja vissza. Ha ez az argumentum hiányzik, akkor a szótár felveti a KeyError értéket.

Példa:

java szeletelése
 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']) 

Kimenet:

 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 

A defaultdict belső működése

A defaultdict használatakor a szokásos szótári műveletek mellett egy további írható példányváltozót és egy metódust is kapunk. Az írható példányváltozó a default_factory paraméter és __hiányzó__ a módszer.

    default_factory:A default_factory() függvény a felhasználó által az általa meghatározott szótárhoz beállított alapértelmezett értéket adja vissza.

Példa:

 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']) 

Kimenet:

 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>
    __hiányzó__():A __missing__() függvény a szótár alapértelmezett értékének megadására szolgál. A __missing__() függvény a default_factory-t veszi argumentumként, és ha az argumentum None-ra van állítva, akkor egy KeyError jelenik meg; ellenkező esetben alapértelmezett értéket ad az adott kulcshoz. Ezt a módszert lényegében az __getitem__() a dict osztály funkciója, ha a kért kulcs nem található. A __getitem__() függvény a __missing__() függvényben szereplő értéket emeli vagy adja vissza.

Példa:

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

Kimenet:

 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>

A 'Lista' használata default_factory-ként

Egy lista osztályt adhatunk át default_factory argumentumként, és ez létrehoz egy defaultdict-et a lista formátumban beállított értékekkel.

Példa:

python elérési út beállítása
 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) 

Kimenet:

 Dictionary with values as list: defaultdict(, {7: [7], 8: [8], 9: [9], 10: [10], 11: [11]}) 

Az 'int' használata default_factory-ként

Az int osztályt default_factory argumentumként adhatjuk át, és ez létrehoz egy defaultdict-et, amelynek alapértelmezett értéke nulla.

Példa:

 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) 

Kimenet:

 defaultdict(, {1: 2, 2: 3, 3: 1, 4: 2}) 

Következtetés

Ebben az oktatóanyagban megvitattuk a Python alapértelmezett diktálását, és azt, hogy hogyan hajthatunk végre különféle műveleteket a defaultdict-en a default_factory paraméter használatával.