Python, Korištenje funkcije enumerate(): Dobivanje elemenata i indeksa popisa

Poslovanje

Koristeći Pythonovu enumerate() funkciju, možete dobiti indeksni broj (broj, redoslijed) kao i elemente iterable objekta kao što je popis ili tuple u for petlji.

Ovaj članak objašnjava osnove funkcije enumerate().

  • Funkcija za dobivanje indeksa u for petlji:enumerate()
    • Normalna for petlja
    • Petlja za korištenjem funkcije enumerate().
  • Pokreni indeks funkcije enumerate() na 1 (vrijednost koja nije nula)
  • Odredite prirast (korak)

Funkcija enumerate() može se koristiti za dobivanje indeksa u for petlji.

Normalna for petlja

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

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

Petlja za korištenjem funkcije enumerate().

Navedite iterativni objekt kao što je popis kao argument funkcije enumerate().

Tim redoslijedom možete dobiti indeksni broj i element.

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

Pokreni indeks funkcije enumerate() na 1 (vrijednost koja nije nula)

Kao što je prikazano u gornjem primjeru, prema zadanim postavkama, indeks funkcije enumerate() počinje od 0.

Ako želite započeti s brojem koji nije 0, navedite proizvoljan početni broj kao drugi argument funkcije enumerate().

Za početak od nule, učinite sljedeće.

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

Naravno, možete početi s drugim brojevima.

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

Korisno kada želite stvoriti sekvencijalno numerirani niz; pametnije je odrediti početni broj kao drugi argument funkcije enumerate() nego koristiti ‘i+1’ za početak od 1.

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

Pogledajte sljedeći članak za više informacija o funkciji formata, koja se koristi za popunjavanje brojeva nulama.

Odredite prirast (korak)

Ne postoji argument za određivanje inkrementalnog koraka u funkciji enumerate(), ali se može postići slijedećim

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