Los diccionarios en Python son estructuras de datos muy potentes que permiten almacenar pares de clave y valor. A diferencia de las listas o tuplas, donde se accede a los elementos por posición (índice), en los diccionarios se accede a través de una clave única.
Los diccionarios se pueden definir usando llaves {} y separando cada par clave:
valor con comas:
persona = {
"nombre": "Carlos",
"edad": 28,
"documento": "12345678"
}
También se pueden crear usando la función dict():
vehiculo = dict(marca="Toyota", modelo="Corolla", año=2020)
print(vehiculo)
# {'marca': 'Toyota', 'modelo': 'Corolla', 'año': 2020}
Se puede acceder a un valor mediante su clave usando
[] o la función get():
print(persona["nombre"]) # Carlos
print(persona.get("edad")) # 28
Para modificar un valor, se usa la clave directamente:
persona["edad"] = 29
Si se intenta acceder o asignar una clave que no existe, esta se crea automáticamente:
persona["email"] = "carlos@example.com"
Existen varias formas de recorrer un diccionario:
# Solo claves
for clave in persona:
print(clave)
# Solo valores
for valor in persona.values():
print(valor)
# Clave y valor
for clave, valor in persona.items():
print(f"{clave}: {valor}")
Un diccionario puede contener otros diccionarios como valores:
estudiantes = {
"Juan": {"edad": 21, "carrera": "Ingeniería"},
"Ana": {"edad": 22, "carrera": "Medicina"}
}
print(estudiantes["Juan"]["carrera"]) # Ingeniería
A continuación, una lista de los métodos más comunes utilizados en diccionarios, con ejemplos:
Elimina todos los elementos del diccionario:
datos = {"a": 1, "b": 2}
datos.clear()
print(datos) # {}
Obtiene el valor de la clave indicada. Si no existe, devuelve
None o el valor por defecto:
persona.get("altura") # None
persona.get("altura", "Desconocido") # Desconocido
Devuelve una vista de pares (clave, valor):
print(persona.items())
# dict_items([('nombre', 'Carlos'), ('edad', 29), ('documento', '12345678'), ('email', 'carlos@example.com')])
Devuelve una vista con todas las claves:
print(persona.keys())
# dict_keys(['nombre', 'edad', 'documento', 'email'])
Devuelve una vista con todos los valores:
print(persona.values())
# dict_values(['Carlos', 29, '12345678', 'carlos@example.com'])
Elimina y devuelve el valor de la clave indicada. Si la clave no existe y no se proporciona valor por defecto, lanza un error:
persona.pop("documento") # '12345678'
persona.pop("altura", "No encontrada") # 'No encontrada'
Elimina y devuelve el último par clave-valor insertado:
ultima = persona.popitem()
print(ultima) # ('email', 'carlos@example.com')
Actualiza el diccionario actual con otro. Si una clave ya existe, su valor se sobrescribe. Si no, se añade:
persona.update({"nombre": "Carlos A.", "telefono": "555-1234"})
Los diccionarios son ideales cuando: