La funzione enumerate() in Python
La funzione enumerate() in Python è una funzione build-in che ti permette di aggiungere un contatore a un oggetto iterabile.
enumerate(oggetto, start)
La funzione enumerate() prende due parametri:
- Oggetto iterabile
Può essere una sequenza (stringa, tupla, ecc.) o una collezione (set, dizionario, ecc.) o un iteratore oggetto da enumerare - Start (facoltativo)
E' il valore iniziale che la funzione enumerate() utilizza per contare gli elementi. Se non è specificato, start è uguale a 0
La funzione enumerate() conta gli elementi durante un'iterazione restituendo una tupla, ossia una coppia i valori, composta dall'elemento dell'iterabile e dal contatore.
Ecco un esempio pratico.
Crea una lista o qualsiasi altro oggetto iterabile.
>>> fruits = ['apple', 'banana', 'mango', 'grape', 'orange']
Ora trasforma la lista in un oggetto iteratore enumerabile tramite la funzione enumerate()
>>> obj=enumerate(fruits)
La funzione restituisce un oggetto iteratore della classe "enumerate".
Puoi constatarlo tu stesso usando la funzione type()
>>> type(obj)
<class 'enumerate'>
A questo punto puoi iterare gli elementi dal primo all'ultimo usando la funzione next().
next(obj)
Python ti restituisce una coppia di valori composta dal contatore e dal valore dell'elemento.
In questo caso il contatore parte da zero.
(1, 'banana')
Se reiteri la funzione next(), Python mostra le tupla seguenti
>>> next(obj)
(1, 'banana')
>>> next(obj)
(2, 'mango')
>>> next(obj)
(3, 'grape')
>>> next(obj)
(4, 'orange')
Dopo aver restituito l'ultimo elemento, qualunque altra richiesta next() solleva un'eccezione StopIteration.
Puoi leggere il contenuto dell'oggetto enumerate anche usando un ciclo for
- for i, fruit in enumerate(fruits):
- print(f"Elemento {i}: {fruit}")
In questo caso il ciclo produce il seguente output:
Elemento 0: apple
Elemento 1: banana
Elemento 2: mango
Elemento 3: grape
Elemento 4: orange
In questo caso, la variabile "i" è il contatore mentre "fruit" è il valore dell'elemento.