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.
Tabla de contenidos
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.
Los diccionarios son unas estructuras de datos muy útiles cuando necesitas:
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.
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.
.keys()
para mayor claridadEl 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.
.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
.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:
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
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.
Antes de terminar se pueden ver un par de puntos sobre los diccionarios en Python.
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.
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]
Iterar sobre diccionarios en Python es una habilidad fundamental que permite trabajar con datos estructurados de forma eficiente. En esta entrada has aprendido:
.keys()
, .values()
y .items()
.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.
En casi cualquier análisis estadístico —ya sea en medicina, psicología, economía o ciencia de datos—…
El MSCI World Index suele presentarse como “la ventana al mundo” para quienes invierten en…
En el mundo del análisis de datos solemos escuchar una idea poderosa: cuantos más datos,…
¿Te has encontrado con este error al intentar instalar paquetes con npm? npm ERR! code…
En ciencia de datos y estadística, los promedios y porcentajes son herramientas fundamentales para resumir…
Las bases de datos son el corazón de casi cualquier sistema de información moderno. Ya…
This website uses cookies.