Capitolo 5. Iteratori e generatori
Questo lavoro è stato tradotto utilizzando l'AI. Siamo lieti di ricevere il tuo feedback e i tuoi commenti: translation-feedback@oreilly.com
Quando molte persone con esperienza in un altro linguaggio iniziano a imparare Python, sono colte di sorpresa dalla differenza di notazione dei cicli for. Cioè, invece discrivere
#Other languagesfor(i=0;i<N;i++){do_work(i);}
vengono introdotti ad una nuova funzione chiamata range:
# Pythonforiinrange(N):do_work(i)
Sembra che nell'esempio di codice Python stiamo chiamando una funzione, range, che crea tutti i dati di cui abbiamo bisogno perché il ciclo for possa continuare. Intuitivamente, questo può essere un processo che richiede molto tempo: se stiamo cercando di eseguire un ciclo sui numeri da 1 a 100.000.000, dobbiamo dedicare molto tempo alla creazione dell'array! Tuttavia, è qui che entrano in gioco i generatori: in sostanza ci permettono di valutare pigramente questo tipo di funzioni in modo da avere la leggibilità del codice di queste funzioni speciali senza l'impatto sulle prestazioni.
Per capire questo concetto, implementiamo una funzione che calcola diversi numeri ...