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

Los récords con asterisco, o la épica del titular sin contexto – El bestiario de los indicadores económicos absurdos (parte 8 y final)

Y llegamos al final de una serie que había programado para ser de tres entradas.…

4 días ago

PSI: Cómo Saber Cuándo tu Modelo de Credit Scoring se ha Degradado

Un modelo de credit scoring no es un artefacto estático. Se construye en un momento…

6 días ago

Los indicadores que se autocumplen, o cuando medir es modificar – El bestiario de los indicadores económicos absurdos (parte 7)

En las seis entregas anteriores hemos paseado por casi todos los géneros del disparate económico:…

2 semanas ago

Customer Lifetime Value: la fórmula clásica que todo analista debería dominar

El Customer Lifetime Value (CLV) es, probablemente, la métrica más importante que puede calcular una…

2 semanas ago

Analytics Lane lanza la versión 1.4 del laboratorio con nuevas herramientas de conversión y modelos avanzados de CLV

Seguimos ampliando el laboratorio de Analytics Lane con el lanzamiento de la versión 1.4, que…

2 semanas ago

This website uses cookies.