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.
¿Cómo se crea un diccionario?
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}
Propiedades de los diccionarios:
- Indexados por clave: se accede a los valores mediante sus claves.
- se pueden modificar, añadir o eliminar elementos.
- No ordenados (hasta Python 3.6), pero a partir de Python 3.7 mantienen el orden de inserción.
- Dinámicos: pueden crecer o reducirse durante la ejecución.
- Pueden estar anidados: es posible tener diccionarios dentro de otros diccionarios.
Acceder y modificar elementos:
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"
Iterar un diccionario:
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}")
Diccionarios anidados:
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
Métodos de los diccionarios:
A continuación, una lista de los métodos más comunes utilizados en diccionarios, con ejemplos:
1. clear():
Elimina todos los elementos del diccionario:
datos = {"a": 1, "b": 2}
datos.clear()
print(datos) # {}
2. get(clave[, valor_por_defecto]):
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
3. items():
Devuelve una vista de pares (clave, valor):
print(persona.items())
# dict_items([('nombre', 'Carlos'), ('edad', 29), ('documento', '12345678'), ('email', 'carlos@example.com')])
4. keys():
Devuelve una vista con todas las claves:
print(persona.keys())
# dict_keys(['nombre', 'edad', 'documento', 'email'])
5. values():
Devuelve una vista con todos los valores:
print(persona.values())
# dict_values(['Carlos', 29, '12345678', 'carlos@example.com'])
6. pop(clave[, valor_por_defecto]):
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'
7. popitem():
Elimina y devuelve el último par clave-valor insertado:
ultima = persona.popitem()
print(ultima) # ('email', 'carlos@example.com')
8. update():
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"})
¿Cuándo usar diccionarios?
Los diccionarios son ideales cuando:
- Necesitamos acceso rápido a los datos mediante claves.
- Queremos representar estructuras complejas con muchos campos (como una persona, un producto, etc.).
- Se requiere almacenar información con significado (clave:valor) en lugar de datos en posiciones.