logo

Oletusasetus Pythonissa

Sanakirja Pythonissa on järjestämätön kokoelma tietoarvoja, joita käytetään data-arvojen, kuten kartan, tallentamiseen. Toisin kuin muut tietotyypit, joissa on vain yksi arvo elementtinä, sanakirja sisältää avain-arvo-parin. Sanakirjassa avaimen on oltava ainutlaatuinen ja muuttumaton. Tämä tarkoittaa, että Python Tuple voi olla avain, kun taas Python List ei. Sanakirja voidaan luoda sijoittamalla elementtisarja kiharaisiin {} aaltosulkeisiin pilkulla erotettuina.

Esimerkki:



Python 3






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



>

vierekkäiset kulmat

>

Lähtö:

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>

Joskus, kun KeyError ilmaistaan, siitä voi tulla ongelma. Tämän voittamiseksi Python esittelee toisen sanakirjan kaltaisen kontin, joka tunnetaan nimellä Defaultdict joka on kokoelmamoduulin sisällä.
Huomautus: Lisätietoja on kohdassa Python-sanakirja .

OletusDict

Defaultdict on säiliön kaltainen sanakirjoja läsnä moduulissa kokoelmat . Defaultdict on sanakirjaluokan alaluokka, joka palauttaa sanakirjamaisen objektin. Sekä sanakirjojen että defaultdictin toiminnot ovat lähes samat, paitsi että oletuslause ei koskaan aiheuta KeyErroria. Se tarjoaa oletusarvon avaimelle, jota ei ole olemassa.

Syntaksi: oletussanoma(oletus_tehdas)
Parametrit:

    default_factory: Funktio, joka palauttaa määritetyn sanakirjan oletusarvon. Jos tämä argumentti puuttuu, sanakirja herättää KeyError-ilmoituksen.

Esimerkki:

Python 3




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

>

>

Lähtö:

1 2 Not Present>

Defaultdictin sisäinen toiminta

Defaultdict lisää yhden kirjoitettavan ilmentymämuuttujan ja yhden menetelmän vakiosanakirjatoimintojen lisäksi. Ilmentymämuuttuja on default_factory-parametri ja annettu menetelmä on __missing__.

voiko abstraktilla luokalla olla konstruktori
    Default_factory: Se on funktio, joka palauttaa määritetyn sanakirjan oletusarvon. Jos tämä argumentti puuttuu, sanakirja herättää KeyError-ilmoituksen.
    Esimerkki:

Python 3




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

>

>

muuntaa nfa dfa:ksi

Lähtö:

1 2 Not Present>
    __missing__(): Tätä funktiota käytetään antamaan oletusarvo sanakirjalle. Tämä funktio käyttää default_factorya argumenttina ja jos tämä argumentti on None, KeyError nostetaan, muuten se antaa oletusarvon annetulle avaimelle. Tätä menetelmää kutsuu periaatteessa dict-luokan __getitem__()-metodi, kun pyydettyä avainta ei löydy. __getitem__() nostaa tai palauttaa arvon, jonka __missing__() palauttaa. menetelmä.
    Esimerkki:

Python 3




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

>

mysql-päivitykseen liittyminen

>

Lähtö:

Not Present Not Present>

Listan käyttäminen oletustehdasarvona

Kun listaluokka välitetään default_factory-argumenttina, oletussääntö luodaan arvoilla, jotka ovat lista.
Esimerkki:

Python 3




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

>

>

Lähtö:

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

Int:n käyttö oletustehdasarvona

Kun int-luokka välitetään default_factory-argumenttina, luodaan oletusarvo, jonka oletusarvo on nolla.
Esimerkki:

Python 3




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

sed-komento

>

>

Lähtö:

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