Los fundamentos de los registros avanzados de Python

Iterador

En la lista, tupla, etc. presentada anteriormente, hemos atravesado los elementos a través de un ciclo for-in. Este recorrido se llama iteración, y un iterador es un objeto que puede recordar la posición transversal. Se accede al objeto iterador desde el primer elemento de la secuencia hasta que se accede a todos los elementos.

  • Crea un iterador

Los iteradores se crean en Python usando la función iter (). Pase listas, tuplas, diccionarios y colecciones a la función iter () para generar iteradores correspondientes.

Los fundamentos de los registros avanzados de Python (11)

Crea un iterador

Los tipos de iterador generados por listas, tuplas, diccionarios y conjuntos son list_iterator (iterador de lista), tuple_iterator (tuple iterator), dict_keyiterator (iterador de diccionario) y set_iterator (set iterator).

  • Recorrido del iterador

Cuando usamos un bucle for-in, siempre que actúe sobre un objeto iterable, el bucle for puede ejecutarse normalmente, y no nos importa si el objeto es una lista u otros tipos de datos. Por lo tanto, podemos usar un bucle for-in para atravesar el iterador.

Los fundamentos de los registros avanzados de Python (11)

iterador transversal de bucle for-in

Cabe señalar aquí que la clave para atravesar el diccionario es la predeterminada cuando se recorre el iterador del diccionario.

Además de los bucles for-in, los iteradores también pueden atravesar su propio método next ().

Los fundamentos de los registros avanzados de Python (11)

El método next () atraviesa el iterador

Cada vez que se llama al método next (), obtendrá el elemento en la posición transversal actual y registrará la siguiente posición transversal.

Tenga en cuenta que el iterador solo puede avanzar sin retroceder. Por lo tanto, cuando finaliza el recorrido del iterador (ya sea el recorrido del bucle for-in o el recorrido del método next ()), si continúa llamando al método next (), Python lanzará una excepción StopIteration.

Generador

Antes de presentar el generador, primero agregamos una lista de generación de listas de puntos de conocimiento. La expresión de generación de lista se refiere a una expresión que puede generar una lista de lista, y se representa entre corchetes [].

Los fundamentos de los registros avanzados de Python (11)

Generación de listas

En el código anterior, solo se requiere una línea de código para usar la fórmula de generación de lista para reemplazar el bucle for-in para generar la lista requerida, y la lista se puede generar rápidamente. La generación de listas se puede derivar de otra lista, pero el código es muy conciso. Además, la generación de listas también admite bucles for-in seguidos de sentencias condicionales if, lo que aumenta la operatividad.

  • Conceptos básicos de generadores.

Debido a que el tipo de generación de lista genera la lista de una vez, y la capacidad de la lista es limitada, aunque en general, esta capacidad es lo suficientemente grande, pero siempre estará limitada por la memoria. Y, a veces, no necesitamos acceder a todos los elementos de la lista, por ejemplo, hay una lista que contiene 1 millón de elementos, pero solo necesitamos acceder a los primeros elementos, si crea esta lista, el espacio ocupado por la mayoría de los elementos detrás ¿No se desperdicia?

Por lo tanto, Python nos proporciona un mecanismo para computar durante el bucle, que es un generador. El generador nos permite calcular continuamente los elementos posteriores durante el proceso de recorrido del bucle, por lo que no es necesario crear una lista completa.

Los fundamentos de los registros avanzados de Python (11)

Creación simple de generador

Reemplazar los corchetes de la fórmula de generación de listas con paréntesis no es una tupla, sino un simple generador. Podemos atravesar este generador a través de un ciclo for-in. El generador también tiene el método next (), pero básicamente no llamamos al método next () para el generador generado de esta manera.

  • palabra clave de rendimiento

Aunque el método anterior también puede generar un generador, no hemos utilizado mucho. Nuestros generadores de uso común en Python utilizan principalmente funciones con la palabra clave de rendimiento.

A diferencia de las funciones ordinarias, un generador es una función que devuelve un iterador y solo puede usarse para operaciones iterativas. En el proceso de llamar al generador, cada vez que se encuentra el rendimiento, la función hará una pausa y guardará toda la información de ejecución actual, devolverá el valor de rendimiento y continuará ejecutándose desde la posición actual la próxima vez que se ejecute el método next ().

Los fundamentos de los registros avanzados de Python (11)

Uso básico del generador de rendimiento

En el código anterior, implementamos la secuencia de Fibonacci a través del generador de la palabra clave de rendimiento, que devuelve un iterador. Por ejemplo, si asignamos fibonacci (10) a la variable f, entonces f es un iterador que contiene los primeros 10 elementos de la secuencia de Fibonacci, que se pueden recorrer a través del método next ().

 Si tiene alguna pregunta, comuníquese con: Capacitación sobre comercio electrónico . Hashiguchi Chiyomi

Supongo que te gusta

Origin www.cnblogs.com/qilundianshang/p/12719443.html
Recomendado
Clasificación