Slovník v Pythone je neusporiadaná kolekcia dátových hodnôt, ktoré sa používajú na ukladanie dátových hodnôt ako mapa. Na rozdiel od iných typov údajov, ktoré obsahujú iba jednu hodnotu ako prvok, slovník obsahuje pár kľúč – hodnota. V Slovníku musí byť kľúč jedinečný a nemenný. To znamená, že Python Tuple môže byť kľúčom, zatiaľ čo zoznam Python nie. Slovník možno vytvoriť umiestnením sekvencie prvkov do zložených {} zátvoriek oddelených „čiarkou“.
Príklad:
Python3
# Python program to demonstrate> # dictionary> > > Dict> => {>1>:>'Geeks'>,>2>:>'For'>,>3>:>'Geeks'>}> print>(>'Dictionary:'>)> print>(>Dict>)> print>(>Dict>[>1>])> > # Uncommenting this print(Dict[4])> # will raise a KeyError as the> # 4 is not present in the dictionary> |
java porovnávať reťazce
>
>
Výkon:
Dictionary: {1: 'Geeks', 2: 'For', 3: 'Geeks'} Geeks> Traceback (most recent call last): File '/home/1ca83108cc81344dc7137900693ced08.py', line 11, in print(Dict[4]) KeyError: 4>
Niekedy, keď sa objaví KeyError, môže to byť problém. Na prekonanie tohto Python predstavuje ďalší slovník, ako je kontajner známy ako Defaultdict ktorý sa nachádza vo vnútri modulu kolekcií.
Poznámka: Ďalšie informácie nájdete v časti Slovník Pythonu .
DefaultDict
Defaultdict je kontajner ako slovníkov prítomný v module zbierky . Defaultdict je podtrieda triedy slovník, ktorá vracia objekt podobný slovníku. Funkčnosť slovníkov a defaultdict je takmer rovnaká, s výnimkou skutočnosti, že defaultdict nikdy nevyvoláva chybu KeyError. Poskytuje predvolenú hodnotu pre kľúč, ktorý neexistuje.
Syntax: defaultdict(default_factory)
Parametre:default_factory: Funkcia, ktorá vracia predvolenú hodnotu pre definovaný slovník. Ak tento argument chýba, slovník vyvolá chybu KeyError.
Príklad:
Python3
# Python program to demonstrate> # defaultdict> > > from> collections>import> defaultdict> > > # Function to return a default> # values for keys that is not> # present> def> def_value():> >return> 'Not Present'> > # Defining the dict> d>=> defaultdict(def_value)> d[>'a'>]>=> 1> d[>'b'>]>=> 2> > print>(d[>'a'>])> print>(d[>'b'>])> print>(d[>'c'>])> |
>
>
Výkon:
1 2 Not Present>
Vnútorné fungovanie defaultdiktu
Defaultdict pridáva jednu zapisovateľnú premennú inštancie a jednu metódu okrem štandardných operácií so slovníkom. Premenná inštancie je parameter default_factory a poskytnutá metóda je __missing__.
poštár
- Default_factory: Je to funkcia, ktorá vracia predvolenú hodnotu pre definovaný slovník. Ak tento argument chýba, slovník vyvolá chybu KeyError.
Príklad:
Python3
# Python program to demonstrate> # default_factory argument of> # defaultdict> > > from> collections>import> defaultdict> > > # Defining the dict and passing> # lambda as default_factory argument> d>=> defaultdict(>lambda>:>'Not Present'>)> d[>'a'>]>=> 1> d[>'b'>]>=> 2> > print>(d[>'a'>])> print>(d[>'b'>])> print>(d[>'c'>])> |
>
>
Výkon:
1 2 Not Present>
- __missing__(): Táto funkcia sa používa na poskytnutie predvolenej hodnoty pre slovník. Táto funkcia berie ako argument default_factory a ak je tento argument None, vyvolá sa KeyError, inak poskytuje predvolenú hodnotu pre daný kľúč. Táto metóda sa v podstate volá metódou __getitem__() triedy dict, keď sa požadovaný kľúč nenájde. __getitem__() zvýši alebo vráti hodnotu vrátenú funkciou __missing__(). metóda.
Príklad:
Python3
# Python program to demonstrate> # defaultdict> > > from> collections>import> defaultdict> > > # Defining the dict> d>=> defaultdict(>lambda>:>'Not Present'>)> d[>'a'>]>=> 1> d[>'b'>]>=> 2> > # Provides the default value> # for the key> print>(d.__missing__(>'a'>))> print>(d.__missing__(>'d'>))> |
>
>
Výkon:
Not Present Not Present>
Použitie zoznamu ako default_factory
Keď je trieda zoznamu odovzdaná ako argument default_factory, potom sa vytvorí defaultdict s hodnotami, ktoré sú list.
Príklad:
Python3
# Python program to demonstrate> # defaultdict> > > from> collections>import> defaultdict> > > # Defining a dict> d>=> defaultdict(>list>)> > for> i>in> range>(>5>):> >d[i].append(i)> > print>(>'Dictionary with values as list:'>)> print>(d)> |
veľkosť pytóna
>
>
Výkon:
Dictionary with values as list: defaultdict(, {0: [0], 1: [1], 2: [2], 3: [3], 4: [4]})> Použitie int ako default_factory
Keď je trieda int odovzdaná ako argument default_factory, potom sa vytvorí defaultdict s predvolenou hodnotou nula.
Príklad:
Python3
# Python program to demonstrate> # defaultdict> > > from> collections>import> defaultdict> > > # Defining the dict> d>=> defaultdict(>int>)> > L>=> [>1>,>2>,>3>,>4>,>2>,>4>,>1>,>2>]> > # Iterate through the list> # for keeping the count> for> i>in> L:> > ># The default value is 0> ># so there is no need to> ># enter the key first> >d[i]>+>=> 1> > print>(d)> |
>
>
Výkon:
defaultdict(, {1: 2, 2: 3, 3: 1, 4: 2})>