Python, Enumerate()-funktion käyttäminen: Luettelon alkioiden ja indeksien saaminen

liiketoiminta

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.

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
Copied title and URL