Lección 8: Diccionarios
🎯 Objetivo
Crear diccionarios, acceder por clave, agregar/modificar valores y recorrer claves/valores.
📘 Explicación
Un diccionario guarda pares clave → valor. Sirve cuando quieres buscar por un identificador (ej. producto → precio).
🔑 Conceptos clave
- Crear:
p = {"pan": 0.25} - Acceder:
p["pan"] - Agregar/editar:
p["leche"] = 1.2 - Recorrer:
for k,v in p.items()
🧩 Ejemplos
Ejemplo 1: Crear diccionario
persona = {"nombre":"Ana", "edad":20}
print(persona["nombre"])
Ejemplo 2: Agregar/actualizar
producto = {"nombre":"Cuaderno", "precio":2.5}
producto["stock"] = 10
producto["precio"] = 2.75
print(producto)
Ejemplo 3: get para evitar error — Si no existe, devuelve 0.
d = {"a":1}
print(d.get("b", 0))
Ejemplo 4: Recorrer keys/values/items
d = {"a":1,"b":2}
for k,v in d.items():
print(k, v)
Ejemplo 5: Diccionario anidado
alumnos = {
"A001": {"nombre":"Ana", "nota":9},
"A002": {"nombre":"Luis", "nota":7}
}
print(alumnos["A001"]["nota"])
🧪 Ejercicios propuestos
- Crea un diccionario con tu nombre, ciudad y edad, luego imprime una frase con esos datos.
- Crea un diccionario de producto (nombre, precio) y agrega stock.
- Actualiza el precio de un producto en el diccionario.
- Usa get para leer una clave que puede no existir (por ejemplo descuento).
- Recorre un diccionario de materias y notas e imprime cada par.
- Calcula el promedio de notas en un diccionario (valores).
- Crea un diccionario de inventario {producto: stock} y resta 1 a un producto vendido.
- Verifica si una clave existe en el diccionario (in).
- Crea un diccionario anidado de 2 alumnos con nombre y nota e imprime la nota del primero.
- Construye un diccionario vacío y agrega 3 pares clave-valor.
✅ Ver soluciones explicadas (10 ejercicios)
Intenta primero. Luego compara con estas soluciones y lee la explicación.
Ejercicio 1: Crea un diccionario con tu nombre, ciudad y edad, luego imprime una frase con esos datos.
yo = {"nombre":"Ana","ciudad":"Quito","edad":20}
print(f"{yo['nombre']} vive en {yo['ciudad']} y tiene {yo['edad']} años")
Explicación: Acceso por clave.
Ejercicio 2: Crea un diccionario de producto (nombre, precio) y agrega stock.
p = {"nombre":"Lápiz","precio":0.5}
p["stock"] = 100
print(p)
Explicación: Asignar nueva clave.
Ejercicio 3: Actualiza el precio de un producto en el diccionario.
p = {"nombre":"Lápiz","precio":0.5}
p["precio"] = 0.6
print(p)
Explicación: Reasignación por clave.
Ejercicio 4: Usa get para leer una clave que puede no existir (por ejemplo descuento).
p = {"precio":10}
desc = p.get("descuento", 0)
print(desc)
Explicación: get evita KeyError.
Ejercicio 5: Recorre un diccionario de materias y notas e imprime cada par.
notas = {"BD":9, "Python":8}
for mat, nota in notas.items():
print(mat, nota)
Explicación: items() da clave y valor.
Ejercicio 6: Calcula el promedio de notas en un diccionario (valores).
notas = {"BD":9, "Python":8, "Web":7}
prom = sum(notas.values()) / len(notas)
print(prom)
Explicación: values() devuelve los valores.
Ejercicio 7: Crea un diccionario de inventario {producto: stock} y resta 1 a un producto vendido.
inv = {"cuaderno":10, "lápiz":20}
inv["cuaderno"] -= 1
print(inv)
Explicación: Decremento de stock.
Ejercicio 8: Verifica si una clave existe en el diccionario (in).
inv = {"cuaderno":10}
print("cuaderno" in inv)
print("borrador" in inv)
Explicación: in revisa claves.
Ejercicio 9: Crea un diccionario anidado de 2 alumnos con nombre y nota e imprime la nota del primero.
alumnos = {
"A1": {"nombre":"Ana","nota":9},
"A2": {"nombre":"Luis","nota":7}
}
print(alumnos["A1"]["nota"])
Explicación: Acceso doble.
Ejercicio 10: Construye un diccionario vacío y agrega 3 pares clave-valor.
d = {}
d["a"] = 1
d["b"] = 2
d["c"] = 3
print(d)
Explicación: Crear y asignar.
⚠️ Errores comunes
- Acceder a una clave inexistente:
precios["xxx"]da error. Valida conin. - Confundir diccionario con lista: aquí no se usa índice numérico (a menos que la clave sea número).
- Usar claves mutables (no recomendado): para básico usa str o int como clave.