Lección 8 · Clave-Valor

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

  1. Crea un diccionario con tu nombre, ciudad y edad, luego imprime una frase con esos datos.
  2. Crea un diccionario de producto (nombre, precio) y agrega stock.
  3. Actualiza el precio de un producto en el diccionario.
  4. Usa get para leer una clave que puede no existir (por ejemplo descuento).
  5. Recorre un diccionario de materias y notas e imprime cada par.
  6. Calcula el promedio de notas en un diccionario (valores).
  7. Crea un diccionario de inventario {producto: stock} y resta 1 a un producto vendido.
  8. Verifica si una clave existe en el diccionario (in).
  9. Crea un diccionario anidado de 2 alumnos con nombre y nota e imprime la nota del primero.
  10. 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 con in.
  • 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.