Diccionario en Python es una colección desordenada de valores de datos que se utilizan para almacenar valores de datos como un mapa. A diferencia de otros tipos de datos que contienen un solo valor como elemento, el Diccionario contiene un par clave-valor. En Diccionario, la clave debe ser única e inmutable. Esto significa que una tupla de Python puede ser una clave, mientras que una lista de Python no. Se puede crear un diccionario colocando una secuencia de elementos entre llaves {}, separados por 'coma'.
Ejemplo:
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> |
>
polimorfismo en java
>
Producción:
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>
A veces, cuando aparece el KeyError, puede convertirse en un problema. Para superar esto, Python introduce otro contenedor similar a un diccionario conocido como dictamen predeterminado que está presente dentro del módulo de colecciones.
Nota: Para obtener más información, consulte Diccionario de Python .
DefaultDict
dictamen predeterminado es un contenedor como diccionarios presente en el módulo colecciones . Defaultdict es una subclase de la clase de diccionario que devuelve un objeto similar a un diccionario. La funcionalidad de ambos diccionarios y defaultdict es casi la misma excepto por el hecho de que defaultdict nunca genera un KeyError. Proporciona un valor predeterminado para la clave que no existe.
Sintaxis: dictamen predeterminado(default_factory)
Parámetros:default_factory: función que devuelve el valor predeterminado para el diccionario definido. Si este argumento está ausente, el diccionario genera un KeyError.
Ejemplo:
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'>])> |
>
>
Producción:
1 2 Not Present>
Funcionamiento interno de defaultdict
Defaultdict agrega una variable de instancia grabable y un método además de las operaciones de diccionario estándar. La variable de instancia es el parámetro default_factory y el método proporcionado es __missing__.
ordenar burbujas en java
- Default_factory: Es una función que devuelve el valor predeterminado para el diccionario definido. Si este argumento está ausente, el diccionario genera un KeyError.
Ejemplo:
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'>])> |
>
>
recorrido del árbol
Producción:
1 2 Not Present>
- __missing__(): esta función se utiliza para proporcionar el valor predeterminado para el diccionario. Esta función toma default_factory como argumento y si este argumento es Ninguno, se genera un KeyError; de lo contrario, proporciona un valor predeterminado para la clave dada. Básicamente, este método es llamado por el método __getitem__() de la clase dict cuando no se encuentra la clave solicitada. __getitem__() aumenta o devuelve el valor devuelto por __missing__(). método.
Ejemplo:
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'>))> |
>
¿Qué es el mapa de Java?
>
Producción:
Not Present Not Present>
Usando Lista como default_factory
Cuando la clase de lista se pasa como argumento default_factory, se crea un defaultdict con los valores que son list.
Ejemplo:
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)> |
>
>
nombre de la ciudad en estados unidos
Producción:
Dictionary with values as list: defaultdict(, {0: [0], 1: [1], 2: [2], 3: [3], 4: [4]})> Usando int como default_factory
Cuando la clase int se pasa como argumento default_factory, se crea un defaultdict con el valor predeterminado como cero.
Ejemplo:
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)> |
>
>
Producción:
defaultdict(, {1: 2, 2: 3, 3: 1, 4: 2})>