Python, funktsiooni enumerate() kasutamine: Nimekirja elementide ja indeksite saamine

Äri

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