Iteratori Python: cos'è Iteratore in Python e come usarlo?



In questo blog sugli iteratori Python, faremo uno studio approfondito sugli iteratori in Python e su come vengono implementati.

Il linguaggio di programmazione Python ha ridimensionato ogni aspetto dell'innovazione, incluso , , , ecc. Una delle tante ragioni di questa impresa sono concetti come Python Iterators, concetti come questi sono i mattoni del trionfo di Python come linguaggio di programmazione. In questo articolo, esamineremo i seguenti concetti per comprendere gli iteratori di Python:

Iteratori vs Iterable

Un oggetto in Python, che può essere utilizzato come oggetto Iterable, è chiamato Iterable. Ciò significa fondamentalmente che la sequenza nell'oggetto può essere ripetuta. La maggior parte delle collezioni Python come un file elenco , , tupla , imposta , e persino gamma può essere considerato un Iterable.





Cosa sono gli iteratori Python?

Un pitone I teratore è un contenitore contenente un numero numerabile di valori. I valori in un contenitore possono essere attraversati utilizzando gli iteratori, in particolare gli elenchi.

A parte l'attraversamento, Iterators dà anche accesso agli elementi di dati in un contenitore ma non esegue esso stessoiterazionecioè, non senza una certa libertà significativa presa con quel concetto o con un uso banale della terminologia. Un Iterator è quasi simile a un filecursore del databasenel comportamento. Ecco un semplice esempio di Iterator in .



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

Produzione: Edureka

Iterator è qualsiasi tipo di Python che può essere utilizzato con un 'ciclo for in'.Qualsiasi oggetto che deve essere utilizzato come iteratore deve implementare i seguenti metodi.

iteratori in python - edureka



1. __iter__()

Viene chiamato durante l'inizializzazione di un Iterator.Dovrebbe restituire un oggetto che ha un metodo next o __next__.

2. __next __ ()

Il metodo successivo di Iterator restituisce il valore successivo per Iterable.

Quando un Iteratore viene utilizzato con un ciclo 'for in', next () viene chiamato implicitamente da sull'oggetto Iterator. Questo metodo dovrebbe utilizzare StopIteration per segnalare la fine dell'iterazione.Insieme, questi due metodi sono chiamati protocollo Iterator. Cerchiamo di capire come un ciclo for agisce da iteratore in Python con un esempio.

for i in object: print (i)

Cerchiamo di capire come funziona il ciclo for come iteratore.

# crea un oggetto iteratore da quell'iterabile iter_obj = iter (iterabile) # ciclo infinito mentre True: prova: # prendi l'elemento successivo elemento = successivo (iter_obj) # fai qualcosa con l'elemento tranne StopIteration: # se StopIteration è sollevato, interrompi dal ciclo rompere

Ora che sappiamo, come funziona il file per loop funziona come un iteratore. Cerchiamo di capire come possiamo implementare iteratori personalizzati in Python.

Iteratori personalizzati

Ora diamo un'occhiata a come possiamo implementare iteratori personalizzati in Python. Per capire questo, useremo un esempio. In questo esempio, implementeremo i metodi __iter __ () e __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)) print (next (myiter)) print (next (myiter))

Produzione: uno

2

3

Ora che sappiamo come implementare iteratori personalizzati, diamo un'occhiata agli infiniti iteratori in Python.

Iteratori infiniti

Non è sempre obbligatorio che l'elemento in un oggetto Iterator debba esaurirsi. Ci possono essere infiniti iteratori (che non finiscono mai). Ecco un esempio di base per dimostrare infiniti iteratori.

Il built-in iter()può essere chiamato con due argomenti in cui il primo argomento deve essere un oggetto (funzione) che può essere chiamato e il secondo è la sentinella. L'iteratore chiama questa funzione finché il valore restituito non diventa uguale alla sentinella.

Facciamo un esempio per capirlo

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)) print (next (myiter)) print (next (myiter)) print (next (myiter)) print (next (myiter))

Produzione: uno
2
3
4
5

Nell'esempio sopra, l'esecuzione continuerà finché continuiamo ad aggiungere l'istruzione print. Per fermare gli infiniti iteratori, dobbiamo usare l'istruzione stopIteration.

diversi tipi di quadro in selenio

StopIteration

Per impedire che un'iterazione continui per sempre, utilizziamo l'istruzione StopIteration. Cerchiamo di capirlo con alcuni esempi.

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) for x in myiter: print (x)

Produzione: uno
2
3
4
5

Ora non appena il file condizione è falsa, l'esecuzione si sposterà nel blocco else e l'iterazione verrà interrotta. Ora diamo un'occhiata ad alcuni altri esempi di iteratori in Python.

Esempi di iteratore Python

Ecco alcuni altri esempi di iteratori in Python.

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

Produzione: Edureka

In questo esempio, usiamo la tupla come oggetto iterabile.

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

Produzione: Edureka

Possiamo persino usare la stringa come oggetto iterabile in Python.

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

Produzione: E

Questo ci porta alla fine di questo articolo dove abbiamo imparato come utilizzare gli iteratori Python con esempi. Spero che tu sia chiaro con tutto ciò che è stato condiviso con te in questo tutorial.

Se hai trovato pertinente questo articolo su 'Python Iterators', dai un'occhiata una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo.

Siamo qui per aiutarti in ogni fase del tuo viaggio e per elaborare un curriculum progettato per studenti e professionisti che vogliono essere un . Il corso è progettato per darti un vantaggio nella programmazione Python e addestrarti per i concetti di base e avanzati di Python insieme a vari piace

Se incontri delle domande, sentiti libero di porre tutte le tue domande nella sezione commenti di 'Iteratori Python'. Il nostro team sarà lieto di rispondere.