Iteradores de Python: ¿Qué es Iterador en Python y cómo usarlo?



En este blog sobre iteradores de Python, haremos un estudio en profundidad sobre los iteradores en Python y cómo se implementan.

El lenguaje de programación Python ha escalado todos y cada uno de los aspectos de la innovación, incluidos , , , etc. Una de las muchas razones de esta hazaña son conceptos como los iteradores de Python, conceptos como estos son los componentes básicos del triunfo de Python como lenguaje de programación. En este artículo, repasaremos los siguientes conceptos para comprender los iteradores de Python:

Iteradores vs iterables

Un objeto en Python, que se puede usar como objeto Iterable, se llama Iterable. Esto básicamente significa que se puede iterar sobre la secuencia en el objeto. La mayoría de las colecciones de Python como un lista , , tupla , conjuntos , e incluso rango puede tratarse como un Iterable.





¿Qué son los iteradores de Python?

Una Python I terator es un contenedor que contiene un número contable de valores. Los valores de un contenedor se pueden atravesar mediante iteradores, en particular listas.

Aparte del recorrido, los iteradores también dan acceso a los elementos de datos en un contenedor, pero no realizaniteraciónes decir, no sin cierta libertad significativa con ese concepto o con un uso trivial de la terminología. Un iterador es casi similar a uncursor de base de datosen comportamiento. A continuación se muestra un ejemplo sencillo del iterador en .



my_obj = {'Edureka', 'Python', 'iterator'} iter_obj = iter (my_obj) print (next (iter_obj))

Salida: Edureka

El iterador es cualquier tipo de Python que se pueda usar con un 'bucle for in'.Cualquier objeto que se utilice como iterador debe implementar los siguientes métodos.

iteradores en python - edureka



1. __iter __ ()

Se llama en la inicialización de un iterador.Debería devolver un objeto que tenga un método next o __next__.

2. __siguiente __ ()

El siguiente método del Iterador devuelve el siguiente valor para el Iterable.

Cuando se usa un iterador con un bucle 'for in', next () es llamado implícitamente por en el objeto Iterator. Este método debe usar StopIteration para señalar el final de la iteración.Juntos, estos dos métodos se denominan Protocolo de iterador. Intentemos comprender cómo un bucle for actúa como un iterador en Python con un ejemplo.

para yo en el objeto: imprimir (i)

Entendamos cómo funciona el bucle for como iterador.

# crear un objeto iterador a partir de ese iterable iter_obj = iter (iterable) # bucle infinito mientras es True: intente: # obtener el siguiente elemento elemento = siguiente (iter_obj) # hacer algo con el elemento excepto StopIteration: # si se genera StopIteration, romper con el bucle descanso

Ahora que sabemos, ¿cómo en bucle funciona como iterador. Entendamos cómo podemos implementar iteradores personalizados en Python.

Iteradores personalizados

Ahora echemos un vistazo a cómo podemos implementar iteradores personalizados en Python. Para entender esto, usaremos un ejemplo. En este ejemplo, implementaremos los métodos __iter __ () y __next __ ().

class MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): x = self.a self.a + = 1 return x myclass = MyNumbers () myiter = iter (myclass) print (next ( myiter)) imprimir (siguiente (myiter)) imprimir (siguiente (myiter))

Salida: 1

2

3

Ahora que sabemos cómo podemos implementar iteradores personalizados, echemos un vistazo a los iteradores infinitos en Python.

Iteradores infinitos

No siempre es obligatorio que el elemento de un objeto Iterator tenga que agotarse. Puede haber infinitos iteradores (que nunca termina). A continuación se muestra un ejemplo básico para demostrar iteradores infinitos.

El incorporado iter ()se puede llamar con dos argumentos donde el primer argumento debe ser un objeto (función) que se puede llamar y el segundo es el centinela. El Iterador llama a esta función hasta que el valor devuelto se vuelve igual al centinela.

Tomemos un ejemplo para entender esto

class MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): x = self.a self.a + = 1 return x myclass = MyNumbers () myiter = iter (myclass) print (next ( myiter)) imprimir (siguiente (myiter)) imprimir (siguiente (myiter)) imprimir (siguiente (myiter)) imprimir (siguiente (myiter))

Salida: 1
2
3
4
5

En el ejemplo anterior, la ejecución continuará mientras sigamos agregando la declaración de impresión. Para detener los iteradores infinitos, necesitamos usar la instrucción stopIteration.

cómo instalar chef server

StopIteration

Para evitar que una iteración continúe para siempre, usamos la instrucción StopIteration. Entendamos esto con algunos ejemplos.

class MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): if self.a & ampampamplt = 5: x = self.a self.a + = 1 return x else: raise StopIteration myclass = MyNumbers () myiter = iter (myclass) para x en myiter: print (x)

Salida: 1
2
3
4
5

Ahora, tan pronto como el condición es falsa, la ejecución se moverá al bloque else y la iteración se detendrá. Ahora echemos un vistazo a algunos otros ejemplos de iteradores en Python.

Ejemplos de iteradores de Python

Aquí hay algunos ejemplos más de iteradores en Python.

my_obj = ['Edureka', 'python', 'iterator'] iter_obj = iter (my_obj) print (siguiente (iter_obj))

Salida: Edureka

En este ejemplo, usamos la tupla como objeto iterable.

my_obj = ('Edureka', 'python', 'iterator') iter_obj = iter (my_obj) print (siguiente (iter_obj))

Salida: Edureka

Incluso podemos usar la cadena como un objeto iterable en Python.

my_obj = 'Edureka' iter_obj = iter (my_obj) print (siguiente (iter_obj))

Salida: ES

Esto nos lleva al final de este artículo donde hemos aprendido cómo usamos los iteradores de Python con ejemplos. Espero que tengas claro todo lo que se ha compartido contigo en este tutorial.

Si encuentra relevante este artículo sobre 'Iteradores de Python', consulte una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo.

Estamos aquí para ayudarlo en cada paso de su viaje y crear un plan de estudios diseñado para estudiantes y profesionales que desean ser un . El curso está diseñado para darle una ventaja en la programación de Python y capacitarlo para los conceptos básicos y avanzados de Python junto con varios me gusta

Si encuentra alguna pregunta, no dude en hacer todas sus preguntas en la sección de comentarios de 'Iteradores de Python'. Nuestro equipo estará encantado de responder.