Python, Uporaba funkcije enumerate(): Pridobivanje elementov in indeksov seznama

Posel

S Pythonovo funkcijo enumerate() lahko v zanki for dobite številko indeksa (število, vrstni red) in elemente iterabilnega objekta, kot je seznam ali tuple.

Ta članek pojasnjuje osnove funkcije enumerate().

  • Funkcija za pridobitev indeksa v zanki for: enumerate()
    • Običajna zanka for
    • Za zanko s funkcijo enumerate()
  • Začetek indeksa funkcije enumerate() pri 1 (neničelna vrednost).
  • Določite prirastek (korak)

Funkcijo enumerate() lahko uporabite za pridobitev indeksa v zanki for.

Običajna zanka for

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

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

Za zanko s funkcijo enumerate()

Kot argument funkcije enumerate() navedite objekt iterabilnega tipa, na primer seznam.

V tem vrstnem redu lahko dobite številko indeksa in element.

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

Začetek indeksa funkcije enumerate() pri 1 (neničelna vrednost).

Kot je prikazano v zgornjem primeru, se indeks funkcije enumerate() privzeto začne z 0.

Če želite začeti s številom, ki ni 0, kot drugi argument funkcije enumerate() navedite poljubno začetno število.

Če želite začeti od začetka, naredite naslednje.

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

Seveda lahko začnete z drugimi številkami.

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

Uporabno, kadar želite ustvariti zaporedno oštevilčen niz; pametneje je določiti začetno številko kot drugi argument funkcije enumerate() kot uporabiti 'i+1' za začetek od 1.

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

Več informacij o funkciji format, ki se uporablja za polnjenje števil z ničlami, najdete v naslednjem članku.

Določite prirastek (korak)

V funkciji enumerate() ni argumenta za določitev inkrementalnega koraka, vendar ga lahko dosežete z naslednjim

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