Python

Cómo iterar sobre diccionarios usando bucles for en Python

Uno de los aspectos más destacables de Python es su facilidad para manejar estructuras de datos complejas de forma intuitiva. Entre ellas, los diccionarios ocupan un lugar fundamental. Debido a que permiten almacenar pares clave-valor de manera eficiente, son ampliamente utilizados en ciencia de datos, desarrollo web, automatización de tareas, inteligencia artificial y prácticamente cualquier aplicación Python.

Sin embargo, muchas personas que están aprendiendo el lenguaje se preguntan: ¿cómo podemos recorrer un diccionario para acceder a sus datos? ¿Cómo iterar para imprimir cada clave y su valor, realizar operaciones condicionales o transformar su contenido?

En esta entrada responderemos precisamente a esa pregunta: cómo iterar sobre diccionarios usando bucles for en Python. Comenzaremos con una breve introducción sobre qué son los diccionarios y por qué son útiles. Luego, exploraremos las diferentes formas de recorrerlos con ejemplos prácticos. Finalmente, ofreceremos algunas consideraciones adicionales y conclusiones que te ayudarán a dominar esta estructura fundamental.

¿Qué es un diccionario en Python?

En Python, un diccionario es una colección mutable y, desde Python 3.7, ordenada (es decir, conserva el orden de inserción), que almacena datos en pares clave-valor. La sintaxis básica es:

mi_diccionario = {
    "nombre": "Ana",
    "edad": 30,
    "ciudad": "Madrid"
}

Aquí, "nombre", "edad" y "ciudad" son las claves, mientras que "Ana", 30 y "Madrid" son los valores asociados.

¿Por qué usar diccionarios?

Los diccionarios son unas estructuras de datos muy útiles cuando necesitas:

  • Acceder rápidamente a un valor mediante una clave.
  • Agrupar información relacionada (por ejemplo, los atributos de una persona).
  • Representar datos de forma estructurada y flexible.

¿Por qué es importante iterar sobre un diccionario?

Supongamos que tienes el siguiente diccionario de estudiantes con sus notas:

notas = {
    "Laura": 8.5,
    "Carlos": 7.0,
    "Lucía": 9.2,
    "Pedro": 4.8
}

¿Cómo podrías recorrer este diccionario para imprimir el nombre del estudiante y su nota? ¿O encontrar al que obtuvo la calificación más alta? Aquí es donde la capacidad de iterar sobre diccionarios se vuelve esencial.

Iterar sobre las claves

La forma más sencilla de iterar sobre un diccionario es recorrer sus claves. Por defecto, al usar un bucle for sobre un diccionario este itera sobre sus claves:

for clave in notas:
    print(clave)

Este código imprimirá los nombres de los estudiantes. Algo como:

Laura
Carlos
Lucía
Pedro

Si deseas acceder también a los valores se puede usar la clave sobre el diccionario:

for clave in notas:
    valor = notas[clave]
    print(f"{clave} tiene una nota de {valor}")

Produce una salida como la siguiente:

Laura tiene una nota de 8.5
Carlos tiene una nota de 7.0
Lucía tiene una nota de 9.2
Pedro tiene una nota de 4.8

Este método es simple y directo, ideal si solo necesitas trabajar con las claves. Sin embargo, puede resultar menos eficiente si también necesitas los valores, ya que requiere un acceso adicional por clave.

Usar .keys() para mayor claridad

El método .keys() devuelve una vista de todas las claves del diccionario. Aunque no es necesario usarlo para iterar, puede mejorar la legibilidad:

for clave in notas.keys():
    print(clave)

Este enfoque tiene el mismo resultado que el anterior, pero hace explícito que estás trabajando con las claves.

Iterar sobre los valores con .values()

Si solo necesitas trabajar con los valores del diccionario:

for nota in notas.values():
    print(nota)
8.5
7.0
9.2
4.8

Este método es útil, por ejemplo, para calcular el promedio de notas:

promedio = sum(notas.values()) / len(notas)
print(f"El promedio de notas es: {promedio:.2f}")
El promedio de notas es: 7.38

Iterar sobre claves y valores con .items()

La forma más eficiente y legible de recorrer un diccionario completo es usando .items(), que devuelve pares (clave, valor):

for nombre, nota in notas.items():
    print(f"{nombre} tiene una nota de {nota}")
Laura tiene una nota de 8.5
Carlos tiene una nota de 7.0
Lucía tiene una nota de 9.2
Pedro tiene una nota de 6.8

Este enfoque es el más recomendado para iterar sobre diccionarios usando bucles for en Python ya que es:

  • Elegante y claro.
  • Más eficiente que acceder al valor usando la clave dentro del bucle.
  • Ideal cuando necesitas trabajar con ambos elementos.

Diccionarios anidados

En ocasiones, los valores de un diccionario pueden ser otros diccionarios. Por ejemplo:

estudiantes = {
    "Laura": {"nota": 8.5, "edad": 20},
    "Carlos": {"nota": 7.0, "edad": 21}
}

Puedes recorrerlos con bucles anidados:

for nombre, info in estudiantes.items():
    print(f"{nombre}:")
    for clave, valor in info.items():
        print(f"  {clave}: {valor}")

La salida será algo como:

Laura:
nota: 8.5
edad: 20
Carlos:
nota: 7.0
edad: 21

Comprensiones de diccionarios

Una forma concisa de construir nuevos diccionarios es mediante comprensiones:

notas_aprobados = {nombre: nota for nombre, nota in notas.items() if nota >= 5.0}
print(notas_aprobados)
{'Laura': 8.5, 'Carlos': 7.0, 'Lucía': 9.2}

Este código genera un nuevo diccionario solo con los estudiantes aprobados.

Consideraciones adicionales

Antes de terminar se pueden ver un par de puntos sobre los diccionarios en Python.

Orden de los elementos

Desde Python 3.7, los diccionarios conservan el orden de inserción. Aunque esto es útil, sigue siendo buena práctica no depender del orden a menos que sea estrictamente necesario. Es decir, seguir usándolos como estructura de datos no ordenadas.

No modificar un diccionario mientras lo recorres

Modificar un diccionario durante la iteración puede provocar errores. La forma correcta es iterar sobre una copia de las claves:

claves = list(notas.keys())
for clave in claves:
    if notas[clave] < 5.0:
        del notas[clave]

Conclusiones

Iterar sobre diccionarios en Python es una habilidad fundamental que permite trabajar con datos estructurados de forma eficiente. En esta entrada has aprendido:

  • Cómo iterar sobre claves, valores o ambos.
  • A usar .keys(), .values() y .items().
  • Cómo aplicar estas técnicas en ejemplos prácticos.
  • Qué precauciones tomar, como evitar modificar el diccionario mientras lo recorres.
  • Cómo trabajar con diccionarios anidados y comprensiones de diccionario.

Dominar estas técnicas te permitirá escribir código más claro, eficiente y expresivo. Ya sea que estés empezando con Python o reforzando tus habilidades, saber recorrer diccionarios eficazmente es una herramienta clave en tu arsenal como programador.

Nota: La imagen de este artículo fue generada utilizando un modelo de inteligencia artificial.

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

Curiosidad: ¿Por qué usamos p < 0.05? Un umbral que cambió la historia de la ciencia

En casi cualquier análisis estadístico —ya sea en medicina, psicología, economía o ciencia de datos—…

3 días ago

¿Está concentrado el MSCI World? Un análisis con Gini, Lorenz y leyes de potencia

El MSCI World Index suele presentarse como “la ventana al mundo” para quienes invierten en…

5 días ago

Curiosidad: La maldición de la dimensionalidad, o por qué añadir más datos puede empeorar tu modelo

En el mundo del análisis de datos solemos escuchar una idea poderosa: cuantos más datos,…

1 semana ago

Error npm ERR! code EACCES al instalar paquetes en Node.js: Cómo solucionarlo paso a paso

¿Te has encontrado con este error al intentar instalar paquetes con npm? npm ERR! code…

2 semanas ago

Curiosidad: La Paradoja de Simpson, o por qué no siempre debes fiarte de los promedios

En ciencia de datos y estadística, los promedios y porcentajes son herramientas fundamentales para resumir…

2 semanas ago

Copias de seguridad automáticas en SQL Server con rotación de archivos

Las bases de datos son el corazón de casi cualquier sistema de información moderno. Ya…

3 semanas ago

This website uses cookies.