Coursera Learner working on a presentation with Coursera logo and
Coursera Learner working on a presentation with Coursera logo and

Nel programma Python, i programmatori usano spesso il ciclo for per creare un ciclo su un oggetto iterabile. Ciò significa essenzialmente che non è necessaria una variabile di conteggio per accedere agli elementi all’interno dell’iterabile. In alcuni casi, tuttavia, i programmatori hanno bisogno di una variabile in grado di cambiare a ogni iterazione del ciclo. Invece di creare e incrementare variabili, si può sempre utilizzare la funzione enumerate () per ottenere un contatore e un valore contemporaneamente.

Iterazione con i cicli presenti in Python

Il ciclo for di Python utilizza un’iterazione basata sulle collezioni, il che significa che Python tende ad assegnare un elemento alle variabili del ciclo (da iterable) in ogni singola iterazione. Ecco un esempio.

I valori di questo esempio sono un elenco che contiene 3 stringhe, che si dà il caso siano gli alfabeti a, b e c. Nel programma Python, gli elenchi sono considerati una variante degli oggetti iterabili. La variabile del ciclo presente nel ciclo for è value. È bene tenere presente che a ogni iterazione del ciclo, il valore tende a essere impostato sull’elemento successivo e proviene dai valori del comando.

Dopodiché, si deve iniziare a stampare il valore sullo schermo. Uno dei principali vantaggi delle iterazioni basate su collezioni è che evita gli errori che si riscontrano comunemente in molti altri linguaggi di programmazione.

Supponiamo che, oltre al valore, si voglia stampare sullo schermo l’indice dell’elemento a ogni iterazione. Un modo efficace di affrontare questo compito è quello di creare una variabile per memorizzare l’indice. Una volta fatto questo, si può procedere all’aggiornamento della variabile a ogni iterazione, che avrà un aspetto simile a questo:

Nell’esempio citato, l’indice è essenzialmente un numero intero che tiene traccia della posizione dell’utente nell’elenco. A ogni iterazione del ciclo, l’indice verrà stampato insieme al valore. Il passo finale del ciclo richiede l’aggiornamento del numero presente nell’indice (assicuratevi di aggiornarlo di uno). Si noterà un bug se non si aggiorna l’indice a ogni iterazione. Ecco come potrebbe apparire

Nell’esempio, si noterà che l’indice di ogni iterazione rimane a 0. Questo perché il suo valore non è stato aggiornato da un codice alla fine del ciclo. Rintracciare un bug come questo può essere incredibilmente impegnativo, soprattutto nei cicli complicati e più lunghi.
Un modo efficace per affrontare questo problema è quello di combinare range() e len() per creare un indice. Il motivo per cui questa tattica è spesso consigliata è che aiuta a creare gli indici automaticamente, assicurando che non si debba ricordare quando si deve effettuare l’aggiornamento.

Usare enumerate() in Python nel modo giusto

I programmatori possono utilizzare enumerate() all’interno di un singolo ciclo, proprio come farebbero con l’oggetto iterabile iniziale. Invece di aggiungere l’iterabile direttamente dopo l’elemento in presente in for, lo si inserirà tra le parentesi del comando enumerate(). Inoltre, sarà necessario apportare lievi modifiche alla variabile del ciclo. Ecco un esempio che mostra l’aspetto di questa operazione:

Dopo aver digitato enumerate(), si otterranno 2 variabili di ciclo dalla funzione, che consisteranno nel conteggio dell’iterazione corrente e nel valore dell’elemento dell’iterazione corrente.

Come in un normale ciclo for, è possibile assegnare un nome qualsiasi alle variabili del ciclo. Nell’esempio precedente, sono state usate le parole valore e conteggio. Tuttavia, si possono anche chiamare v e i, o qualsiasi altro nome, purché sia valido in Python.

Quando si utilizza la funzione enumerate (), non è necessario ricordare quando si accede all’elemento dell’iterabile. Ciò che rende le cose ancora migliori è che non si deve ricordare di far avanzare l’indice presente alla fine del ciclo. Python si occupa di quasi tutto automaticamente, garantendo che non ci si debba preoccupare di ricordare dettagli essenziali.

Nota importante

L’uso delle due variabili del ciclo, che sono valore e conteggio, separandole con una virgola, mostra lo spacchettamento degli argomenti. Si tratta di una caratteristica incredibilmente potente in Python.

La funzione enumerate() di Python ha un argomento aggiuntivo che i programmatori possono utilizzare per controllare il valore iniziale del conteggio. Per impostazione predefinita, il valore iniziale è zero. Questo perché le sequenze di Python sono indicizzate e tutte iniziano con 0. In parole povere, ogni volta che si intende recuperare l’elemento iniziale di una lista, bisogna assicurarsi di scegliere l’indice 0.
Fare pratica con enumerate() in Python nel modo giusto

I programmatori possono usare la funzione enumerate() ogni volta che desiderano utilizzare gli elementi e il conteggio all’interno di un ciclo. È bene tenere presente che l’uso di enumerate() aumenta essenzialmente il conteggio complessivo di 1 a ogni iterazione. Detto questo, ciò non causerà troppa inflessibilità. Infatti, si può rimanere abbastanza flessibili, poiché il conteggio è un normale intero Python, che può essere utilizzato in più modi.

Il funzionamento interno di enumerate() in Python

Per avere un’idea più chiara del funzionamento di enumerate(), sarebbe meglio implementare la versione che avete in Python. La versione di enumerate() deve avere due requisiti fondamentali. Eccoli:

– Iniziare accettando come argomenti il valore iniziale del conteggio e l’iterabile.
– Inviare una tupla, assicurandosi che contenga il valore attuale del conteggio e l’elemento associato all’iterabile.

Nell’esempio precedente, my_enumerate utilizza 2 argomenti, start e sequence, con zero come valore predefinito di start. Per quanto riguarda la definizione della funzione, è necessario utilizzare n come valore per start mentre si esegue un ciclo for sulla sequenza. Per ogni elemento presente nella sequenza, assicurarsi di cedere il controllo verso la rispettiva posizione. Al termine di questo passaggio, inviare i valori attuali di elem e n. Infine, incrementare il comando n per prepararsi alla prossima iterazione.

Se si vuole enumerare in Python come un programmatore esperto, è fondamentale conoscere le basi. Le informazioni e gli esempi citati in questo articolo vi daranno una chiara direzione su come enumerare nel modo giusto.