Pythonin enumerate()-funktiota käyttämällä voit saada indeksin numeron (count, order) sekä iteroitavan objektin, kuten listan tai tuplen, elementit for-silmukassa.
Tässä artikkelissa selitetään enumerate()-funktion perusteet.
- Funktio indeksin saamiseksi for-silmukassa:
enumerate()
- Normaali for-silmukka
- Silmukkaa varten, jossa käytetään enumerate()-funktiota
- Aloita enumerate()-funktion indeksi arvosta 1 (nollasta poikkeava arvo).
- Määritä lisäys (askel)
Funktiota enumerate() voidaan käyttää indeksin saamiseksi for-silmukassa.
Normaali for-silmukka
l = ['Alice', 'Bob', 'Charlie']
for name in l:
print(name)
# Alice
# Bob
# Charlie
Silmukkaa varten, jossa käytetään enumerate()-funktiota
Määritä iteroitava objekti, kuten lista, enumerate()-funktion argumentiksi.
Saat indeksinumeron ja elementin tässä järjestyksessä.
for i, name in enumerate(l):
print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie
Aloita enumerate()-funktion indeksi arvosta 1 (nollasta poikkeava arvo).
Kuten yllä olevassa esimerkissä näkyy, enumerate()-funktion indeksi alkaa oletusarvoisesti 0:sta.
Jos haluat aloittaa jollakin muulla luvulla kuin 0, määritä mielivaltainen aloitusluku enumerate()-funktion toiseksi argumentiksi.
Jos haluat aloittaa alusta, toimi seuraavasti.
for i, name in enumerate(l, 1):
print(i, name)
# 1 Alice
# 2 Bob
# 3 Charlie
Voit tietysti aloittaa muillakin numeroilla.
for i, name in enumerate(l, 42):
print(i, name)
# 42 Alice
# 43 Bob
# 44 Charlie
Hyödyllinen, kun haluat luoda juoksevasti numeroidun merkkijonon; on fiksumpaa määrittää aloitusnumero enumerate()-funktion toisena argumenttina kuin käyttää 'i+1' aloittaaksesi 1:stä.
for i, name in enumerate(l, 1):
print('{:03}_{}'.format(i, name))
# 001_Alice
# 002_Bob
# 003_Charlie
Seuraavassa artikkelissa on lisätietoja format-funktiosta, jota käytetään numeroiden täyttämiseen nollilla.
- Aiheeseen liittyvät artikkelit:Täytettyjen nollien, heksadesimaalilukujen jne. tulostaminen Pythonin format()-funktiolla.
Määritä lisäys (askel)
Enumerate()-funktiossa ei ole argumenttia inkrementaalisen askeleen määrittämiseksi, mutta se voidaan saavuttaa tekemällä seuraavasti
step = 3
for i, name in enumerate(l):
print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie