En Python, los diccionarios son contenedores que asignan una clave a su valor con una complejidad de tiempo de acceso O(1) . Pero en muchas aplicaciones, el usuario no conoce todas las claves presentes en los diccionarios. En tales casos, si el usuario intenta acceder a una clave que falta, aparece un error que indica que faltan claves .
Python3
# Python code to demonstrate Dictionary and # missing value error # initializing Dictionary d = { 'a' : 1 , 'b' : 2 } # trying to output value of absent key print ("The value associated with 'c' is : ") print (d['c'])
Error :
Traceback (most recent call last): File "46a9aac96614587f5b794e451a8f4f5f.py", line 9, in print (d['c']) KeyError: 'c'
En el ejemplo anterior, ninguna tecla llamada ‘c’ en el diccionario mostró un error de tiempo de ejecución. Para evitar tales condiciones, y para que el usuario sepa que una clave en particular está ausente o para mostrar un mensaje predeterminado en ese lugar, existen varios métodos para manejar las claves faltantes.
Método 1: Usando get()
El método get(key,def_val) es útil cuando tenemos que buscar la clave. Si la clave está presente, se imprime el valor asociado con la clave; de lo contrario, se devuelve el def_value pasado en los argumentos.
Ejemplo:
Python3
country_code = {'India' : '0091', 'Australia' : '0025', 'Nepal' : '00977'} # search dictionary for country code of India print(country_code.get('India', 'Not Found')) # search dictionary for country code of Japan print(country_code.get('Japan', 'Not Found'))
Producción:
0091 Not Found
Método 2: Usar setdefault()
setdefault(key, def_value) funciona de manera similar a get(), pero la diferencia es que cada vez que falta una clave, se crea una nueva clave con el def_value asociado con la clave pasada en los argumentos.
Ejemplo:
Python3
country_code = {'India' : '0091', 'Australia' : '0025', 'Nepal' : '00977'} # Set a default value for Japan country_code.setdefault('Japan', 'Not Present') # search dictionary for country code of India print(country_code['India']) # search dictionary for country code of Japan print(country_code['Japan'])
Producción:
0091 Not Present
Método 3: Usando defaultdict
“ defaultdict ” es un contenedor que se define en un módulo llamado “ colecciones ”. Toma una función (de fábrica por defecto) como su argumento . De forma predeterminada, la configuración predeterminada de fábrica es «int», es decir, 0 . Si una clave no está presente en el dictado predeterminado, se devuelve y se muestra el valor predeterminado de fábrica. Tiene ventajas sobre get() o setdefault().
- Se establece un valor predeterminado en la declaración . No es necesario invocar la función una y otra vez y pasar valores similares como argumentos. De ahí el ahorro de tiempo .
- La implementación de defaultdict es más rápida que get() o setdefault().
Ejemplo:
Python3
# Python code to demonstrate defaultdict # importing "collections" for defaultdict import collections # declaring defaultdict # sets default value 'Key Not found' to absent keys defd = collections.defaultdict(lambda : 'Key Not found') # initializing values defd['a'] = 1 # initializing values defd['b'] = 2 # printing value print ("The value associated with 'a' is : ",end="") print (defd['a']) # printing value associated with 'c' print ("The value associated with 'c' is : ",end="") print (defd['c'])
Producción :
The value associated with 'a' is : 1 The value associated with 'c' is : Key Not found
Este artículo es una contribución de Manjeet Singh . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA