logo

Defaultdict i Python

Ordbok i Python er en uordnet samling av dataverdier som brukes til å lagre dataverdier som et kart. I motsetning til andre datatyper som bare har en enkelt verdi som et element, har ordboken nøkkelverdi-par. I ordbok må nøkkelen være unik og uforanderlig. Dette betyr at en Python Tuple kan være en nøkkel mens en Python List ikke kan. En ordbok kan opprettes ved å plassere en sekvens av elementer innenfor krøllete {} klammeparenteser, atskilt med 'komma'.

Eksempel:



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>



>

>

Produksjon:

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>

Noen ganger, når KeyError oppstår, kan det bli et problem. For å overvinne dette introduserer Python en annen ordbok som container kjent som Defaultdict som finnes inne i samlingsmodulen.
Merk: For mer informasjon, se Python ordbok .

DefaultDict

Defaultdict er en container som ordbøker tilstede i modulen samlinger . Defaultdict er en underklasse av ordbokklassen som returnerer et ordboklignende objekt. Funksjonaliteten til både ordbøker og defaultdict er nesten den samme bortsett fra det faktum at defaultdict aldri reiser en KeyError. Den gir en standardverdi for nøkkelen som ikke eksisterer.

Syntaks: defaultdict(default_factory)
Parametere:

java lokal dato
    default_factory: En funksjon som returnerer standardverdien for den definerte ordboken. Hvis dette argumentet er fraværende, reiser ordboken en KeyError.

Eksempel:

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

>

>

Produksjon:

1 2 Not Present>

Indre Arbeid av defaultdict

Defaultdict legger til én skrivbar forekomstvariabel og én metode i tillegg til standard ordbokoperasjoner. Forekomstvariabelen er parameteren default_factory og metoden som er oppgitt er __missing__.

    Default_factory: Det er en funksjon som returnerer standardverdien for den definerte ordboken. Hvis dette argumentet er fraværende, reiser ordboken en KeyError.
    Eksempel:

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

>

>

Produksjon:

1 2 Not Present>
    __missing__(): Denne funksjonen brukes til å angi standardverdien for ordboken. Denne funksjonen tar default_factory som et argument, og hvis dette argumentet er None, oppstår en KeyError ellers gir den en standardverdi for den gitte nøkkelen. Denne metoden kalles i utgangspunktet av __getitem__()-metoden til dict-klassen når den forespurte nøkkelen ikke finnes. __getitem__() hever eller returnerer verdien returnert av __missing__(). metode.
    Eksempel:

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

>

>

Produksjon:

Not Present Not Present>

Bruker List som default_factory

Når listeklassen sendes som default_factory-argumentet, opprettes et defaultdict med verdiene som er liste.
Eksempel:

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

>

>

Produksjon:

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

Bruker int som default_factory

Når int-klassen sendes som default_factory-argumentet, opprettes et defaultdict med standardverdien som null.
Eksempel:

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

>

>

Produksjon:

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