Slovar v Pythonu je neurejena zbirka podatkovnih vrednosti, ki se uporabljajo za shranjevanje podatkovnih vrednosti, kot je zemljevid. Za razliko od drugih podatkovnih vrst, ki vsebujejo samo eno vrednost kot element, slovar vsebuje par ključ-vrednost. V slovarju mora biti ključ edinstven in nespremenljiv. To pomeni, da je Python Tuple lahko ključ, medtem ko Python List ne more. Slovar lahko ustvarite tako, da zaporedje elementov postavite v zavite {} oklepaje, ločene z »vejico«.
primer:
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> |
>
kaj je govornik
>
Izhod:
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>
Včasih, ko se sproži KeyError, lahko postane težava. Da bi to premagal, je Python predstavil še en slovar, kot je vsebnik, znan kot Defaultdict ki je prisoten znotraj modula zbirk.
Opomba: Za več informacij glejte Slovar Python .
DefaultDict
Defaultdict je kot posoda slovarji prisoten v modulu zbirke . Defaultdict je podrazred slovarskega razreda, ki vrne objekt, podoben slovarju. Funkcionalnost obeh slovarjev in defaultdict je skoraj enaka, razen dejstva, da defaultdict nikoli ne sproži KeyError. Zagotavlja privzeto vrednost za ključ, ki ne obstaja.
Sintaksa: defaultdict(default_factory)
Parametri:default_factory: Funkcija, ki vrne privzeto vrednost za definiran slovar. Če tega argumenta ni, slovar sproži KeyError.
primer:
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'> ])> |
>
>
Izhod:
1 2 Not Present>
Notranje delovanje defaultdict
Defaultdict doda eno zapisljivo spremenljivko primerka in eno metodo poleg standardnih slovarskih operacij. Spremenljivka primerka je parameter default_factory, podana metoda pa je __missing__.
kaj pomeni xdxd
- Default_factory: Je funkcija, ki vrne privzeto vrednost za definirani slovar. Če tega argumenta ni, slovar sproži KeyError.
primer:
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'> ])> |
>
>
velikost vektorja c++
Izhod:
1 2 Not Present>
- __missing__(): Ta funkcija se uporablja za zagotavljanje privzete vrednosti za slovar. Ta funkcija sprejme default_factory kot argument in če je ta argument None, se sproži KeyError, sicer zagotovi privzeto vrednost za dani ključ. To metodo v bistvu pokliče metoda __getitem__() razreda dict, ko zahtevanega ključa ni mogoče najti. __getitem__() dvigne ali vrne vrednost, ki jo vrne __missing__(). metoda.
primer:
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'> ))> |
>
metode v Javi
>
Izhod:
Not Present Not Present>
Uporaba seznama kot default_factory
Ko je razred seznama posredovan kot argument default_factory, se ustvari defaultdict z vrednostmi, ki so seznam.
primer:
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)> |
>
>
Izhod:
Dictionary with values as list: defaultdict(, {0: [0], 1: [1], 2: [2], 3: [3], 4: [4]})>
Uporaba int kot default_factory
Ko je razred int posredovan kot argument default_factory, se ustvari defaultdict s privzeto vrednostjo nič.
primer:
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)> |
za vsak tipkopis
>
>
Izhod:
defaultdict(, {1: 2, 2: 3, 3: 1, 4: 2})>