logo

Noklusējuma diktāts Python

Vārdnīca Python ir nesakārtota datu vērtību kolekcija, kas tiek izmantota datu vērtību, piemēram, kartes, glabāšanai. Atšķirībā no citiem datu tipiem, kuriem kā elements ir tikai viena vērtība, vārdnīcā ir atslēgas un vērtības pāris. Vārdnīcā atslēgai jābūt unikālai un nemainīgai. Tas nozīmē, ka Python Tuple var būt atslēga, savukārt Python saraksts nevar būt. Vārdnīcu var izveidot, ievietojot elementu secību cirtainajās {} iekavās, atdalot tos ar komatu.

Piemērs:



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>



>

hroma adreses josla

>

Izvade:

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>

Dažreiz, kad tiek parādīts KeyError, tas var kļūt par problēmu. Lai to pārvarētu, Python ievieš citu vārdnīcu, piemēram, konteineru, kas pazīstams kā Defaultdict kas atrodas kolekciju modulī.
Piezīme: Lai iegūtu papildinformāciju, skatiet Python vārdnīca .

DefaultDict

Defaultdict ir konteiners līdzīgs vārdnīcas atrodas modulī kolekcijas . Defaultdict ir vārdnīcu klases apakšklase, kas atgriež vārdnīcai līdzīgu objektu. Gan vārdnīcu, gan noklusējuma diktāta funkcionalitāte ir gandrīz vienāda, izņemot to, ka noklusējuma diktāts nekad neizraisa KeyError. Tas nodrošina noklusējuma vērtību atslēgai, kas neeksistē.

Sintakse: noklusējuma diktāts (noklusējuma_rūpnīca)
Parametri:

    default_factory: funkcija, kas atgriež definētās vārdnīcas noklusējuma vērtību. Ja šī argumenta nav, vārdnīca rada KeyError.

Piemērs:

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

>

>

Izvade:

1 2 Not Present>

Noklusējuma diktatora iekšējais darbs

Defaultdict papildus standarta vārdnīcas darbībām pievieno vienu rakstāmu gadījumu mainīgo un vienu metodi. Gadījuma mainīgais ir default_factory parametrs, un norādītā metode ir __missing__.

vārds
    Default_factory: tā ir funkcija, kas atgriež definētās vārdnīcas noklusējuma vērtību. Ja šī argumenta nav, vārdnīca rada KeyError.
    Piemērs:

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

>

>

java localdatetime

Izvade:

1 2 Not Present>
    __missing__(): šī funkcija tiek izmantota, lai nodrošinātu vārdnīcas noklusējuma vērtību. Šī funkcija izmanto default_factory kā argumentu, un, ja šis arguments ir None, tiek parādīts KeyError, pretējā gadījumā tā nodrošina noklusējuma vērtību dotajai atslēgai. Šo metodi pamatā izsauc dict klases metode __getitem__(), ja pieprasītā atslēga netiek atrasta. __getitem__() palielina vai atgriež vērtību, ko atgriež __missing__(). metodi.
    Piemērs:

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

>

java izveides saraksts

>

Izvade:

Not Present Not Present>

Izmantojot sarakstu kā default_factory

Kad saraksta klase tiek nodota kā arguments default_factory, tiek izveidots noklusējuma diktāts ar vērtībām, kas ir saraksts.
Piemērs:

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

>

>

Izvade:

Dictionary with values as list: defaultdict(, {0: [0], 1: [1], 2: [2], 3: [3], 4: [4]})>

Izmantojot int kā default_factory

Kad int klase tiek nodota kā arguments default_factory, tiek izveidots noklusējuma diktāts ar noklusējuma vērtību kā nulle.
Piemērs:

Python3

apļa plānošana




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

>

>

Izvade:

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