Lexikon i Python är en oordnad samling datavärden som används för att lagra datavärden som en karta. Till skillnad från andra datatyper som endast innehåller ett enda värde som ett element, innehåller ordboken nyckel-värdepar. I ordbok måste nyckeln vara unik och oföränderlig. Detta betyder att en Python Tuple kan vara en nyckel medan en Python List inte kan. En ordbok kan skapas genom att placera en sekvens av element inom krulliga {} klammerparenteser, separerade med 'komma'.
Exempel:
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> |
>
>
Produktion:
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>
Ibland, när KeyError uppstår, kan det bli ett problem. För att övervinna detta introducerar Python en annan ordbok som behållare känd som Defaultdict som finns i samlingsmodulen.
Notera: För mer information, se Python ordbok .
DefaultDict
Defaultdict är en container liknande ordböcker finns i modulen samlingar . Defaultdict är en underklass till ordboksklassen som returnerar ett ordboksliknande objekt. Funktionaliteten för både ordböcker och defaultdict är nästan samma förutom det faktum att defaultdict aldrig väcker ett KeyError. Det ger ett standardvärde för nyckeln som inte finns.
Syntax: defaultdict(default_factory)
Parametrar:default_factory: En funktion som returnerar standardvärdet för den definierade ordboken. Om detta argument saknas så väcker ordboken ett KeyError.
Exempel:
Python3
hur man konverterar ett heltal till en sträng i java
# 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'> ])> |
>
>
Produktion:
1 2 Not Present>
Inre Working of defaultdict
Defaultdict lägger till en skrivbar instansvariabel och en metod utöver de vanliga ordboksoperationerna. Instansvariabeln är parametern default_factory och den angivna metoden är __missing__.
- Default_factory: Det är en funktion som returnerar standardvärdet för den definierade ordboken. Om detta argument saknas så väcker ordboken ett KeyError.
Exempel:
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'> ])> |
>
>
Produktion:
1 2 Not Present>
- __missing__(): Denna funktion används för att tillhandahålla standardvärdet för ordboken. Denna funktion tar default_factory som ett argument och om detta argument är None, uppstår ett KeyError annars ger det ett standardvärde för den givna nyckeln. Denna metod anropas i princip av metoden __getitem__() för dict-klassen när den begärda nyckeln inte hittas. __getitem__() höjer eller returnerar värdet som returneras av __missing__(). metod.
Exempel:
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'> ))> |
>
>
Produktion:
Not Present Not Present>
Använder Lista som default_factory
När listklassen skickas som argumentet default_factory skapas ett defaultdict med värdena som är list.
Exempel:
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)> |
>
inställningsmeny android
>
Produktion:
Dictionary with values as list: defaultdict(, {0: [0], 1: [1], 2: [2], 3: [3], 4: [4]})>
Använder int som default_factory
När int-klassen skickas som argumentet default_factory skapas ett defaultdict med standardvärdet noll.
Exempel:
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)> |
>
>
Produktion:
defaultdict(, {1: 2, 2: 3, 3: 1, 4: 2})>