Python Defaultdict

Python Defaultdict

Python ofrece muchas estructuras de datos incorporadas, como listas, tuplas y diccionarios, para guardar y administrar datos de manera eficiente. Los diccionarios proporcionan una manera fácil de guardar datos como pares de valores clave. Una clave actúa como un índice y se usa para recuperar datos. Las teclas deben ser únicas e inmutables en todo el diccionario. Las teclas son en su mayoría cadenas e enteros, aunque el valor de una clave podría ser de cualquier tipo, como un entero, cadena, número de punto flotante o número complejo. Mientras tanto, un diccionario puede contener una colección, como una lista, tupla o algún otro tipo de diccionario. Se crea un diccionario en Python utilizando un par de soportes rizados, en el que cada par de valores clave está separado por una coma.

¿Qué pasa si intenta acceder o modificar una clave específica en un diccionario que no existe?? Bueno, en este caso, el intérprete de Python aumentará el error "KeyError" y terminará la ejecución del programa.

Veamos un ejemplo del error "KeyEror".

#creing un diccionario
my_dict = 1: "Hola", 2: "Bienvenido", 3: "Linuxhint"
#Ascesando una clave que no existe
my_dict [4]

Producción

Para manejar este error, Python proporciona el tipo de Dictición predeterminado, una clase de diccionario que se puede encontrar en el módulo de colecciones. Este artículo cubre el Python Default en detalle en detalle.

Explicación y ejemplos de DictIC de

El valor predeterminado es la alternativa del Diccionario de Python. Devuelve objetos de tipo de diccionario. El valor predeterminado es una subclase de dict. En el caso de una clave faltante, en lugar de aumentar un error de "keyerRor", se proporciona el valor predeterminado para la clave no existente. La sintaxis de DefaultDict es la siguiente:

DefaultDict (default_factory)

La función de defautionDict toma el parámetro default_Factory como argumento. La función default_Factory devuelve el valor predeterminado para el infaute definido. Si intentamos acceder o modificar una clave que falta, entonces la función default_Factory devuelve el valor predeterminado como resultado. Si falta la función default_Factory, entonces el defaultDic aumentará un error de "keyerRor" si hay claves faltantes.

Primero, implementaremos un DefaultDic en nuestro script de Python para acceder a las claves existentes y faltantes.

#Importa el Dictición de predeterminado del módulo de recopilación
Desde colecciones importar predeterminado
#Definir una función para devolver el valor predeterminado
def my_func ()::
imprimir ("la clave no está definida")
#creing a DefualTdict
#pasando el my_func () como un argumento para el valor predeterminado
my_dict = defaultDict (my_func)
#Definiendo las teclas y valores
my_dict [1] = "Hola"
my_dict [2] = "bienvenido"
my_dict [3] = "Linuxhint"
#Ascesando los valores usando claves
imprimir (my_dict [1])
imprimir (my_dict [2])
imprimir (my_dict [3])
#Ascesando la clave faltante o no definida
my_dict [4]

Producción

El [4] es la clave que falta. Entonces, en lugar de plantear un error de "keyerRor", llama a la función default_factory, que devuelve el valor predeterminado.


Una función lambda, conocida como función anónima, también se puede usar como parámetro predeterminado_factory.

A continuación, implementaremos una función Lambda y la pasaremos como un argumento al Dictición predeterminado.

#Importa el Dictición de predeterminado del módulo de recopilación
Desde colecciones importar predeterminado
#creing a DefualTdict
#Pasando la función Lamnda como un argumento para predeterminar
my_dict = defaultDict (lambda: "la clave no está definida")
#Definiendo las teclas y valores
my_dict [1] = "Hola"
my_dict [2] = "bienvenido"
my_dict [3] = "Linuxhint"
#Ascesando los valores usando claves
imprimir (my_dict [1])
imprimir (my_dict [2])
imprimir (my_dict [3])
#Ascesando la clave faltante o no definida
imprimir (my_dict [4])

El Nowdict de default llama a la función predeterminada_factory para proporcionar el valor predeterminado, pero la función __missing () __ proporciona el valor predeterminado. La función __missing () __ es una función incorporada en Python que toma el parámetro predeterminado_factory como argumento. Si no se define el parámetro predeterminado_factory, la función __missing () __ eleva el error "KeyError".

Aquí, usaremos la función __missing () __ en nuestro script de Python.

#Importa el Dictición de predeterminado del módulo de recopilación
Desde colecciones importar predeterminado
#Definir una función para devolver el valor predeterminado
def my_func ()::
imprimir ("la clave no está definida")
#creing a DefualTdict
#pasando el my_func () como un argumento para el valor predeterminado
my_dict = defaultDict (my_func)
#Definiendo las teclas y valores
my_dict [1] = "Linuxhint"
#Ascesando los valores usando claves
imprimir (my_dict [1])
#Ascesando la clave faltante o no definida
my_dict.__missing __ (2)

Producción

Las clases List e int también se pueden usar como parámetros de factor de factor de default con defaultDict.

Lista como el parámetro predeterminado_factory

El Nowdict de default se crea con los valores de lista cuando se pasa la clase de lista un parámetro predeterminado_factory.

#Importa el Dictición de predeterminado del módulo de recopilación
Desde colecciones importar predeterminado
# Definición de un Dictición predeterminado
# Clase de lista de aprobación como un default_factory
my_dict = defaultDict (lista)
para i en el rango (7):
my_dict [i].anular (i)
#espriminar los valores
Imprimir (my_dict)

Producción

La salida muestra los valores en la lista. Como puede ver, se ha creado un Dictición predeterminado que contiene la clave y los valores.

Integers como parámetro predeterminado_factory

Si pasamos la clase INT como un parámetro predeterminado_factory, entonces podemos crear un Dictición predeterminado que solo contiene enteros. Crearemos una lista de enteros y luego lo guardaremos en el Dictición de predeterminado.

#Importa el Dictición de predeterminado del módulo de recopilación
Desde colecciones importar predeterminado
# Definición de un Dictición predeterminado
# pasar la clase int como default_factory
my_dict = defaultDict (int)
#creing una lista de enteros
my_list = [1,2,3]
Porque yo en my_list:
my_dict [i]+= 1
#espriminar los valores
Imprimir (my_dict)

Producción

En la salida dada, los valores enteros antes del colon (:) son claves, mientras que los valores enteros después del colon son valores.

Conclusión

El Dafualtdict es una clase similar a un diccionario presente en el módulo de colecciones. Funciona como un diccionario de Python pero no plantea un "Keyerer" cuando no se encuentra una llave. Este artículo explica el valor predeterminado en detalle con varios ejemplos.