Comprender la comprobación de tipos en diccionarios
En este paso, exploraremos la importancia de la comprobación de tipos dentro de los diccionarios en Python. Los diccionarios son estructuras de datos versátiles que pueden almacenar pares clave-valor. Sin embargo, para garantizar la integridad y confiabilidad de tu código, es crucial entender cómo comprobar los tipos de las claves y valores almacenados en un diccionario.
Los diccionarios en Python se definen utilizando llaves {}
. Cada elemento en un diccionario consta de una clave y un valor correspondiente, separados por dos puntos :
.
Comencemos creando un diccionario simple:
## Create a dictionary
my_dict = {
"name": "Alice",
"age": 30,
"city": "New York"
}
print(my_dict)
Guarda el código anterior en un archivo llamado type_checking.py
dentro de tu directorio ~/project
. Puedes usar el editor VS Code para crear y editar este archivo.
Ahora, ejecuta el script utilizando el siguiente comando en la terminal:
python ~/project/type_checking.py
Deberías ver la siguiente salida:
{'name': 'Alice', 'age': 30, 'city': 'New York'}
En este diccionario, las claves son cadenas de texto ("name"
, "age"
, "city"
) y los valores son una cadena de texto ("Alice"
), un entero (30
) y otra cadena de texto ("New York"
).
La comprobación de tipos se vuelve importante cuando quieres asegurarte de que los datos almacenados en tu diccionario se ajusten a tus expectativas. Por ejemplo, podrías querer verificar que la edad siempre sea un entero o que el nombre siempre sea una cadena de texto.
Consideremos un escenario en el que quieres agregar un nuevo par clave-valor al diccionario, pero quieres asegurarte de que el valor sea de un tipo específico.
Abre el archivo type_checking.py
en VS Code y modifícalo de la siguiente manera:
## Create a dictionary
my_dict = {
"name": "Alice",
"age": 30,
"city": "New York"
}
## Function to add a key-value pair with type checking
def add_item(dictionary, key, value, expected_type):
if isinstance(value, expected_type):
dictionary[key] = value
print(f"Added {key}: {value} to the dictionary.")
else:
print(f"Error: {key} must be of type {expected_type.__name__}.")
## Example usage
add_item(my_dict, "occupation", "Engineer", str)
add_item(my_dict, "salary", 75000, int)
add_item(my_dict, "is_active", True, bool)
add_item(my_dict, "height", "5.8", float) ## Intentionally incorrect type
print(my_dict)
En este código, definimos una función add_item
que toma un diccionario, una clave, un valor y un tipo esperado como entrada. La función utiliza la función isinstance()
para comprobar si el valor es del tipo esperado. Si lo es, el par clave-valor se agrega al diccionario. De lo contrario, se imprime un mensaje de error.
Ejecuta el script nuevamente:
python ~/project/type_checking.py
Deberías ver la siguiente salida:
Added occupation: Engineer to the dictionary.
Added salary: 75000 to the dictionary.
Added is_active: True to the dictionary.
Error: height must be of type float.
{'name': 'Alice', 'age': 30, 'city': 'New York', 'occupation': 'Engineer', 'salary': 75000, 'is_active': True}
Como puedes ver, la función add_item
agregó con éxito los pares clave-valor "occupation", "salary" y "is_active" al diccionario porque sus valores coincidieron con los tipos esperados. Sin embargo, imprimió un mensaje de error para "height" porque el valor proporcionado ("5.8") es una cadena de texto, mientras que el tipo esperado era float
.
Este ejemplo demuestra el concepto básico de comprobación de tipos en diccionarios. En los siguientes pasos, exploraremos técnicas más avanzadas para garantizar la seguridad de tipos en tu código Python.