Capítulo 5. Iteradores y generadores
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Cuando muchas personas con experiencia en otro lenguaje empiezan a aprender Python, les sorprende la diferencia en la notación de los bucles for. Es decir, en lugar deescribir
#Other languagesfor(i=0;i<N;i++){do_work(i);}
se les presenta una nueva función llamada range :
# Pythonforiinrange(N):do_work(i)
Parece que en el ejemplo de código Python estamos llamando a una función, range, que crea todos los datos que necesitamos para que continúe el bucle for. Intuitivamente, este proceso puede llevar mucho tiempo: si intentamos hacer un bucle con los números del 1 al 100.000.000, ¡tendremos que dedicar mucho tiempo a crear esa matriz! Sin embargo, aquí es donde entran en juego los generadores: básicamente nos permiten evaluar perezosamente este tipo de funciones para que podamos tener la legibilidad del código de estas funciones de propósito especial sin los impactos en el rendimiento.