Aprende Python · lección gratuita

Lección 15 · Recorrer diccionarios

Resumen

Un diccionario guarda pares clave → valor, y muchas veces necesitamos recorrerlos para mostrar, contar o acumular información. Python ofrece métodos específicos para iterar de forma clara y legible, evitando accesos manuales repetidos.

Conceptos

Cuando escribes un for directamente sobre un diccionario, Python recorre sus claves. Esto es equivalente a usar .keys(), pero más corto. Si dentro del bucle necesitas el valor, lo obtienes con mi_dict[clave]. Sin embargo, lo más idiomático es usar .items(), que te entrega la clave y el valor a la vez mediante desempaquetado de tuplas.

notas = {"Ana": 18, "Luis": 15, "Eva": 20}

# Solo claves (forma directa)
for nombre in notas:
    print(nombre)

# Clave y valor a la vez con .items()
for nombre, nota in notas.items():
    print(nombre, "->", nota)

Un patrón muy común es acumular o contar mientras recorres. Por ejemplo, sumar todos los valores con total += valor, o contar cuántas veces aparece algo usando conteo[clave] = conteo.get(clave, 0) + 1. El método .get(clave, 0) devuelve 0 si la clave aún no existe, lo que evita errores la primera vez que la encuentras.

ventas = {"lunes": 100, "martes": 250, "miercoles": 150}
total = 0
for valor in ventas.values():
    total += valor
print("Total:", total)   # Total: 500

Ejemplos

# 1) Recorrer claves y valores con .items()
edades = {"Ana": 25, "Beto": 30}
for nombre, edad in edades.items():
    print(nombre, "tiene", edad, "años")

# 2) Sumar todos los valores con .values()
precios = {"pan": 2, "leche": 3, "huevo": 5}
print("Total:", sum(precios.values()))   # Total: 10

# 3) Recorrer solo las claves
for producto in precios:
    print(producto)

# 4) Contar letras acumulando en un diccionario
texto = "banana"
conteo = {}
for letra in texto:
    conteo[letra] = conteo.get(letra, 0) + 1
print(conteo)   # {'b': 1, 'a': 3, 'n': 2}
💡 Usa .items() cuando necesites clave y valor juntos. Es más legible y evita escribir mi_dict[clave] repetidamente dentro del bucle.

Cheatsheet

SintaxisQué hace
for k in d:Recorre las claves
for k in d.keys():Recorre las claves (explícito)
for v in d.values():Recorre los valores
for k, v in d.items():Recorre pares clave-valor
sum(d.values())Suma todos los valores
d.get(k, 0)Valor de k, o 0 si no existe
d[k] = d.get(k, 0) + 1Acumula / cuenta por clave

---

← DiccionariosConjuntos (sets) →

Ver todas las lecciones de Aprende Python →