Python, usare la funzione enumerate(): Ottenere gli elementi e gli indici di una lista

Attività commerciale

Usando la funzione enumerate() di Python, potete ottenere il numero di indice (conteggio, ordine) e gli elementi di un oggetto iterabile come una lista o una tupla in un ciclo for.

Questo articolo spiega le basi della funzione enumerate().

  • Funzione per ottenere l'indice in un ciclo for: enumerate()
    • Normale ciclo for
    • Per il ciclo usando la funzione enumerate()
  • Iniziare l'indice della funzione enumerate() a 1 (un valore non nullo)
  • Specificare l'incremento (passo)

La funzione enumerate() può essere usata per ottenere l'indice in un ciclo for.

Normale ciclo for

l = ['Alice', 'Bob', 'Charlie']

for name in l:
    print(name)
# Alice
# Bob
# Charlie

Per il ciclo usando la funzione enumerate()

Specificare un oggetto iterabile come una lista come argomento della funzione enumerate().

Potete ottenere il numero di indice e l'elemento in questo ordine.

for i, name in enumerate(l):
    print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie

Iniziare l'indice della funzione enumerate() a 1 (un valore non nullo)

Come mostrato nell'esempio qui sopra, per default, l'indice della funzione enumerate() parte da 0.

Se volete iniziare con un numero diverso da 0, specificate un numero iniziale arbitrario come secondo argomento della funzione enumerate().

Per iniziare da zero, fate come segue.

for i, name in enumerate(l, 1):
    print(i, name)
# 1 Alice
# 2 Bob
# 3 Charlie

Naturalmente, si può iniziare con altri numeri.

for i, name in enumerate(l, 42):
    print(i, name)
# 42 Alice
# 43 Bob
# 44 Charlie

Utile quando si vuole creare una stringa numerata in modo sequenziale; è più intelligente specificare il numero iniziale come secondo argomento della funzione enumerate() che usare 'i+1' per iniziare da 1.

for i, name in enumerate(l, 1):
    print('{:03}_{}'.format(i, name))
# 001_Alice
# 002_Bob
# 003_Charlie

Vedi il seguente articolo per maggiori informazioni sulla funzione format, che è usata per riempire i numeri con degli zeri.

Specificare l'incremento (passo)

Non c'è un argomento per specificare il passo incrementale nella funzione enumerate(), ma si può ottenere facendo come segue

step = 3
for i, name in enumerate(l):
    print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie