English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En Python, hay un contenedor llamado diccionario. En el diccionario, podemos mapear claves a sus valores. Usar un diccionario permite acceder a los valores en tiempo constante. Sin embargo, si no existe la clave dada, podría ocurrir algún error.
En esta sección, veremos cómo manejar este tipo de errores. Si intentamos acceder a una clave perdida, podríamos obtener un error de este tipo.
country_dict = {'India': 'IN', 'Australia': 'AU', 'Brazil': 'BR'} print(country_dict['Australia']) print(country_dict['Canada']) # Esto devolverá un error
Resultado de salida
AU --------------------------------------------------------------------------- KeyErrorTraceback (última llamada reciente) <ipython-input-2-a91092e7ee85> en <module>() 2 3 print(country_dict['Australia']) ----> 4 print(country_dict['Canada'])# Esto devolverá un error KeyError: 'Canada'
get()
Method maneja KeyErrorPodemos usar el método get para verificar la clave. Este método tiene dos parámetros. El primero es la clave y el segundo es el valor predeterminado. Después de encontrar la clave, regresará el valor asociado con la clave, pero si la clave no existe, regresará el valor predeterminado, que se pasa como segundo parámetro.
country_dict = {'India': 'IN', 'Australia': 'AU', 'Brazil': 'BR'} print(country_dict.get('Australia', 'No encontrado')) print(country_dict.get('Canada', 'No encontrado'))
Resultado de salida
AU No encontrado
setdefault()
Method maneja KeyErrorelsetdefault()
método es similar aget()
método. También necesita dos parámetros, por ejemploget()
。El primero es la clave, el segundo es el valor predeterminado. La única diferencia de este método es que, cuando falta la clave, agregará una nueva clave con el valor predeterminado.
country_dict = {'India': 'IN', 'Australia': 'AU', 'Brazil': 'BR'} country_dict.setdefault('Canada', 'No presente') #Establecer un valor predeterminado para Canadá print(country_dict['Australia']) print(country_dict['Canada'])
Resultado de salida
AU No presente
defaultdict es un contenedor. Se encuentra en el módulo collections de Python. defaultdict usa el fabricante de valores por defecto como su parámetro. Originalmente, el fabricante de valores por defecto se establece en 0 (entero). Si no existe la clave, devolverá el valor del fabricante de valores por defecto.
No necesitamos especificar el método una y otra vez, por lo que proporciona métodos más rápidos para el objeto diccionario.
import collections as col #establecer el fabricante predeterminado con la cadena 'key not present' country_dict = col.defaultdict(lambda: 'Clave no presente') country_dict['India'] = 'IN' country_dict['Australia'] = 'AU' country_dict['Brazil'] = 'BR' print(country_dict['Australia']) print(country_dict['Canada'])
Resultado de salida
AU Clave no presente