Come creare e utilizzare generatori Python

Come Creare E Utilizzare Generatori Python



Mentre lavori come sviluppatore, spesso devi lavorare con molti valori di dati insignificanti. La memorizzazione di tali valori consuma una parte di memoria, riducendo l'efficienza del codice. Tuttavia, in Python, puoi usare i generatori per evitare questa perdita.

Con i generatori è possibile produrre in serie i valori di una particolare sequenza senza memorizzarli del tutto nella memoria. Inoltre, la funzione “generatore” crea un oggetto che genera valori quando viene ripetuto. Quindi, se vuoi mettere le mani sui generatori Python, questo tutorial fa per te. Qui spiegheremo come creare e utilizzare i generatori Python.

Come creare e utilizzare i generatori Python

I generatori Python vengono utilizzati per lavorare in modo efficace sulle sequenze di dati, principalmente quando si ha a che fare con set di dati di grandi dimensioni o quasi infiniti. I vantaggi dei generatori Python sono:







  1. Conciso: È possibile definire facilmente i generatori in modo conciso, migliorando la leggibilità del codice.
  2. Memoria efficiente: Generano simultaneamente un singolo valore che consuma meno memoria e migliora l'efficienza.
  3. Funzioni integrate: In Python, i generatori hanno funzioni predefinite come next(), iter() e yield per facilitarne il funzionamento.
  4. Funzionalità di pausa e ripresa: Mentre lavori su algoritmi complessi, puoi utilizzare la funzione 'rendimento' per mettere in pausa e riprendere il funzionamento dei generatori.

Puoi creare e utilizzare i generatori in vari modi in Python. Divideremo ulteriormente questa sezione per dimostrarne l'implementazione utilizzando diversi esempi. Per prima cosa, diamo un’occhiata alla sintassi di base:



def nome_funzione ( ) :
prodotto espressione

Il 'def' definisce una funzione e 'yield' viene utilizzato per costruire la funzione 'generatore'. Tuttavia, anche un altro metodo aiuta a creare un generatore utilizzando solo espressioni su una riga.



Funzione generatore per produrre una stringa

Definiamo una funzione generatrice per produrre un valore:





def Generatore ( ) :
prodotto 'Questo è un generatore'
per valore In Generatore ( ) :
stampa ( valore )

Quando lo iteriamo utilizzando un ciclo 'for', il programma genera i valori specificati che è possibile stampare utilizzando la funzione 'print'.



Funzione generatore per creare un contatore

Il seguente programma è l'esempio della funzione generatore per generare una sequenza di numeri:

def mio_generatore ( N ) :
contatore = 0
Mentre contatore < N:
prodotto contatore
contatore + = 1
per contatore In mio_generatore ( 10 ) :
stampa ( contatore )

Ad esempio, se l'input è 10, otterrai valori da 0 a 9 compilando questo codice.

Serie di Fibonacci utilizzando la funzione generatore

Usiamo ora la serie di Fibonacci che è la serie più elementare nella programmazione:

def serie_fibonacci ( limite ) :
io , J = 0 , 1
Mentre io < limite:
prodotto io
io , J = J , io + j

UN = serie_fibonacci ( 6 )

stampa ( Prossimo ( UN ) )
stampa ( Prossimo ( UN ) )
stampa ( Prossimo ( UN ) )
stampa ( Prossimo ( UN ) )
stampa ( Prossimo ( UN ) )
stampa ( Prossimo ( UN ) )

Otterremo la serie come segue eseguendo il codice:

Innanzitutto, crea un oggetto denominato 'a' e chiama la funzione 'generatore' con l'input desiderato come argomento.

La parola chiave next() è un iteratore manuale. Ogni volta che utilizziamo next(a), itera su un valore di 'a'. Tuttavia, possiamo utilizzare il ciclo “for” per stampare tutti i valori di “a” contemporaneamente, come mostrato nell’esempio seguente:

Utilizzando il ciclo 'for' invece della funzione next():

def serie_fibonacci ( limite ) :
io , J = 0 , 1
Mentre io < limite:
prodotto io
io , J = J , io + j

UN = serie_fibonacci ( 6 )
per valore In UN :
stampa ( valore )

Il risultato dell'esecuzione del codice non differirà perché è un metodo alternativo per scrivere il programma precedente:

Cosa sono le espressioni del generatore in Python?

Le espressioni del generatore Python sono un modo per creare le funzioni del 'generatore' in modo conciso utilizzando espressioni lineari. Ecco la semplice sintassi:

( espressione per variabile In iterabile Se condizione )

Ad esempio, crea un'espressione del generatore per calcolare i quadrati dei numeri dispari da 0 a 'n' quando 'n' è il valore di input.

quadrati_dispari = ( x*x per X In allineare ( 10 ) Se X % 2 != 0 )
per valore In quadrati_dispari:
stampa ( valore )

Il codice precedente produce il seguente risultato:

Conclusione

Questo riguarda i diversi metodi per creare e utilizzare i generatori Python. Abbiamo spiegato tutto sulle espressioni del generatore Python. Dovresti usare queste espressioni se pensi di utilizzare i generatori in uno qualsiasi dei tuoi progetti perché sono più efficienti in ogni aspetto della programmazione.