Pythoni funktsiooni enumerate() abil saate for-tsüklis saada nii indeksi numbri (loend, järjekord) kui ka iteratiivse objekti, näiteks loendi või tupli elemendid.
See artikkel selgitab funktsiooni enumerate() põhitõdesid.
- Funktsioon indeksi saamiseks for loopis:
enumerate()
- Tavaline for loop
- For loop, mis kasutab funktsiooni enumerate()
- Alusta funktsiooni enumerate() indeksit väärtusest 1 (mittenullväärtus).
- Määrake juurdekasv (samm)
Funktsiooni enumerate() saab kasutada indeksi saamiseks for-tsüklis.
Tavaline for loop
l = ['Alice', 'Bob', 'Charlie']
for name in l:
print(name)
# Alice
# Bob
# Charlie
For loop, mis kasutab funktsiooni enumerate()
Määrake funktsiooni enumerate() argumendiks itereeritav objekt, näiteks loend.
Saate indeksi numbri ja elemendi selles järjekorras.
for i, name in enumerate(l):
print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie
Alusta funktsiooni enumerate() indeksit väärtusest 1 (mittenullväärtus).
Nagu ülaltoodud näites näidatud, algab funktsiooni enumerate() indeks vaikimisi 0-st.
Kui soovite alustada muu arvuga kui 0, määrake enumerate()-funktsiooni teise argumendina suvaline algarv.
Nullist alustamiseks tehke järgmist.
for i, name in enumerate(l, 1):
print(i, name)
# 1 Alice
# 2 Bob
# 3 Charlie
Loomulikult võite alustada teistest numbritest.
for i, name in enumerate(l, 42):
print(i, name)
# 42 Alice
# 43 Bob
# 44 Charlie
Kasulik, kui soovite luua järjestikku nummerdatud stringi; on targem määrata algusnumber funktsiooni enumerate() teise argumendina, kui kasutada 'i+1', et alustada 1-st.
for i, name in enumerate(l, 1):
print('{:03}_{}'.format(i, name))
# 001_Alice
# 002_Bob
# 003_Charlie
Lisateavet funktsiooni format kohta, mida kasutatakse numbrite nullidega täitmiseks, leiate järgmisest artiklist.
Määrake juurdekasv (samm)
Funktsioonis enumerate() ei ole argumenti astmelise sammu määramiseks, kuid seda saab teha järgmiselt.
step = 3
for i, name in enumerate(l):
print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie