Aprende Python · lección gratuita
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.
for clave in mi_dict: recorre directamente las claves del diccionario..keys() devuelve una vista con todas las claves..values() devuelve una vista con todos los valores..items() devuelve pares (clave, valor) listos para desempaquetar en el for.+= y la sintaxis dict[clave] = dict.get(clave, 0) + 1.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
# 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 escribirmi_dict[clave]repetidamente dentro del bucle.
| Sintaxis | Qué 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) + 1 | Acumula / cuenta por clave |
---