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