# introduccion-a-la-programacion-con-python
Introducción a la programación con Python
Volver a la portada del cursoDiccionarios avanzados
Sección 5 · Manejo de Listas y Diccionarios
Diccionarios avanzados
El diccionario es una de las estructuras más usadas de Python. Guarda pares clave-valor y te permite buscar un dato por su nombre en lugar de por su posición. Una vez que dominas sus métodos, escribes código más corto y más claro.
Repaso rápido
Un diccionario se define con llaves y pares clave: valor. Las claves suelen ser cadenas o números, y deben ser únicas.
persona = {"nombre": "Ada", "edad": 30, "activo": True}
print(persona["nombre"]) # Ada
persona["edad"] = 31 # actualiza un valor existente
persona["ciudad"] = "Lima" # agrega una clave nueva
Acceso seguro con get
Si accedes a una clave que no existe con corchetes, Python lanza KeyError. El método get() evita ese error y te deja definir un valor por defecto.
persona = {"nombre": "Ada"}
print(persona.get("edad")) # None, no falla
print(persona.get("edad", 0)) # 0 como valor por defecto
Para agregar un valor solo si la clave no existe, setdefault() es directo: devuelve el valor actual o lo crea con el que indiques.
Recorrer un diccionario
El método items() te da clave y valor al mismo tiempo, ideal para un bucle.
precios = {"pan": 2.0, "leche": 1.5, "huevos": 3.2}
for producto, precio in precios.items():
print(producto, "cuesta", precio)
# solo claves o solo valores
print(list(precios.keys()))
print(list(precios.values()))
Comprensiones de diccionario
Al igual que las listas, los diccionarios admiten comprensiones para construirlos en una línea. Son útiles para transformar datos.
precios = {"pan": 2.0, "leche": 1.5}
con_iva = {producto: precio * 1.16 for producto, precio in precios.items()}
print(con_iva) # {'pan': 2.32, 'leche': 1.74}
Diccionarios anidados
Un valor puede ser, a su vez, otro diccionario. Así representas datos con estructura, como un registro por cada usuario.
usuarios = {
"ada": {"edad": 30, "ciudad": "Lima"},
"linus": {"edad": 45, "ciudad": "Oslo"},
}
print(usuarios["ada"]["ciudad"]) # Lima
Comprobar y combinar diccionarios
El operador in te dice si una clave existe, sin necesidad de acceder a ella. Es la forma más limpia de decidir antes de leer o escribir.
persona = {"nombre": "Ada", "edad": 30}
if "edad" in persona:
print("tiene edad registrada")
if "ciudad" not in persona:
print("falta la ciudad")
Para combinar dos diccionarios, el método update() copia los pares de uno en otro; las claves repetidas se sobrescriben con el segundo. Desde Python 3.9 también puedes usar el operador | para obtener un diccionario nuevo sin modificar los originales.
base = {"nombre": "Ada", "edad": 30}
extra = {"edad": 31, "ciudad": "Lima"}
base.update(extra)
print(base) # {'nombre': 'Ada', 'edad': 31, 'ciudad': 'Lima'}
combinado = {"a": 1} | {"b": 2}
print(combinado) # {'a': 1, 'b': 2}
Errores comunes
- Usar corchetes en una clave ausente en lugar de
get()y provocarKeyError. - Suponer un orden concreto en versiones antiguas; desde Python 3.7 el orden de inserción se conserva.
- Usar como clave un tipo mutable, como una lista; no está permitido.
- Modificar el diccionario mientras lo recorres, lo que puede provocar errores.
Cierre
Con get, items, comprensiones y anidamiento cubres la mayoría de los usos reales de un diccionario. En el proyecto final combinarás listas y diccionarios para organizar datos.