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

  1. for i, fruit in enumerate(fruits):
  2. 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.




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin