Programación y sintaxis · revisado en agosto de 2026
Generador
Un generador es una función de Python que usa yield en lugar de return para producir una secuencia de valores uno a la vez, bajo demanda, en lugar de construir toda la lista en memoria de antemano. Cada llamada a next() reanuda la función justo donde se quedó.
def numeros_pares(hasta):
n = 0
while n < hasta:
yield n
n += 2
for par in numeros_pares(10):
print(par)Preguntas frecuentes
¿En qué se diferencia de una función normal?
Una función normal calcula y devuelve todo su resultado de una vez; un generador pausa su ejecución en cada yield y la reanuda solo cuando alguien pide el siguiente valor, sin recalcular lo anterior.
¿Por qué usar un generador en vez de una lista?
Porque no reserva memoria para toda la secuencia de antemano — útil para recorrer archivos enormes o flujos de datos donde cargar todo en una lista sería demasiado costoso.
¿Un generador se puede recorrer más de una vez?
No directamente: una vez agotado, un generador no se reinicia solo. Si necesitas recorrerlo de nuevo, tienes que volver a llamar a la función que lo crea.