Introducción

Cuando trabajas con grandes cantidades de datos, los iteradores y generadores te permiten recorrerlos sin cargar todo en memoria. Son herramientas poderosas para crear bucles más eficientes y elegantes.

¿Qué es un iterador?

Un iterador es un objeto que devuelve sus elementos uno a uno, usando los métodos __iter__() y __next__().

Cada llamada a next() obtiene el siguiente elemento. Cuando no quedan más, se lanza una excepción StopIteration.

Crear tu propio iterador

Puedes definir una clase que implemente los métodos __iter__() y __next__():

Salida:

Este iterador genera números secuenciales sin almacenar una lista completa.

Generadores: una forma más simple

Los generadores son funciones que usan yield para producir valores uno a uno, sin necesidad de clases.

Salida:

Cada vez que se ejecuta yield, la función se pausa y guarda su estado, retomando en la siguiente llamada.

Ventajas de los generadores

  • Eficiencia: no cargan todos los datos en memoria.
  • Simplicidad: menos código que un iterador tradicional.
  • Flexibilidad: ideales para flujos de datos grandes o infinitos.

Conclusión

Los iteradores y generadores te permiten recorrer datos de manera eficiente y controlada. Con ellos, puedes procesar grandes volúmenes de información sin comprometer el rendimiento.

Llamada a la acción:

Crea un generador que devuelva los números pares entre 1 y 20, y úsalo en un bucle for para imprimirlos.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *