Red de conocimiento informático - Material del sitio web - Cómo comprender mejor los iteradores y generadores de Python, cuáles son las principales diferencias

Cómo comprender mejor los iteradores y generadores de Python, cuáles son las principales diferencias

Por ejemplo, la iteración es como subir una escalera. Los escalones de la escalera son los elementos de la secuencia de datos y la iteración es como los pies subiendo las escaleras, tocando los escalones uno tras otro. Se puede imaginar como recorrido e iteración: los pies atraviesan y los pasos itera.

En cuanto a lo que es un iterador, mi entendimiento personal es que los iteradores liberan la operación de iteración de los "grilletes" del bucle for, porque una vez que se atraviesa el bucle for, se atraviesa de principio a fin. Al igual que en la subida de escaleras anterior, si utiliza un bucle for para iterar, generalmente tendrá que subir desde el primer escalón hasta el último sin detenerse (a menos que se establezcan condiciones, como romper y continuar) clase), pero el. El iterador no necesita ser así y puede ser más flexible. A través de la función next(), puedes "tomarlo como quieras" después de subir el primer escalón, si no quieres subir, simplemente detente ahí. y continúa usándolo cuando quieras subir a la función next().

Esta característica del iterador de Python se puede utilizar fácilmente para desarrollar juegos pequeños que se pueden borrar. Es mucho más conveniente que el bucle for, como el siguiente ejemplo de juego:

Python. iterador, función iter (), ejemplo de autorización del juego: programación Daqi

El generador de Python puede entenderse como un iterador especial, que tiene las funciones de iterador anteriores. La diferencia con los iteradores es que, a menudo, hay más generadores. utilizado en funciones de Python Utilice la palabra clave de rendimiento para crear funciones de Python en generadores, como el siguiente código:

Análisis de código

Función r( ) porque la palabra clave de rendimiento se convierte en un generador y. devuelve un valor a través de la palabra clave rendimiento. Por ejemplo, cuando se usa next(ra), el primer ciclo de while, la función devuelve 0 y se detiene, cuando se usa next(ra) nuevamente, la función continúa la ejecución desde i += 1 a continuación. producir.

Una de las funciones más importantes del generador de Python es ahorrar la memoria de la computadora ocupada durante la ejecución del programa, tal como el código de ejemplo anterior. Puede que esto no sea obvio. Pongamos un ejemplo más obvio para ilustrar. El código es el siguiente:

Análisis de código:

Combinamos la comprensión del generador anterior y la comprensión de la lista (si existe). Hay muchos elementos, ocupará mucha memoria), y la derivación del generador anterior no será una lista como esa, sino que se generará uno por uno a través de la función next(). Por ejemplo, cuando se usa next(). la primera vez, " "cai" genera 0 y lo devuelve como valor de retorno. Utilice la función next() por segunda vez, "cai" genera 1 y lo devuelve como valor de retorno. Esto obviamente no ocupará demasiada memoria y hacer que el programa Python se vuelva más eficiente.

Para obtener más información sobre los generadores, consulte el siguiente contenido:

Funciones de los generadores de Python, palabras clave de rendimiento, análisis de ejemplo: programación Daqi