Pomocou funkcie enumerate() jazyka Python môžete v cykle for získať číslo indexu (počet, poradie), ako aj prvky iterovateľného objektu, napríklad zoznamu alebo tuplu.
Tento článok vysvetľuje základy funkcie enumerate().
- Funkcia na získanie indexu v cykle for:
enumerate()
- Normálny cyklus for
- Pre cyklus s použitím funkcie enumerate()
- Začiatok indexu funkcie enumerate() na hodnote 1 (nenulová hodnota)
- Zadajte prírastok (krok)
Na získanie indexu v cykle for možno použiť funkciu enumerate().
Normálny cyklus for
l = ['Alice', 'Bob', 'Charlie']
for name in l:
print(name)
# Alice
# Bob
# Charlie
Pre cyklus s použitím funkcie enumerate()
Ako argument funkcie enumerate() zadajte iterovateľný objekt, napríklad zoznam.
Môžete získať číslo indexu a prvok v tomto poradí.
for i, name in enumerate(l):
print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie
Začiatok indexu funkcie enumerate() na hodnote 1 (nenulová hodnota)
Ako je uvedené v príklade vyššie, index funkcie enumerate() začína štandardne od 0.
Ak chcete začať iným číslom ako 0, zadajte ako druhý argument funkcie enumerate() ľubovoľné počiatočné číslo.
Ak chcete začať od začiatku, postupujte takto.
for i, name in enumerate(l, 1):
print(i, name)
# 1 Alice
# 2 Bob
# 3 Charlie
Samozrejme, môžete začať aj s inými číslami.
for i, name in enumerate(l, 42):
print(i, name)
# 42 Alice
# 43 Bob
# 44 Charlie
Užitočné, ak chcete vytvoriť postupne číslovaný reťazec; je rozumnejšie zadať počiatočné číslo ako druhý argument funkcie enumerate(), ako použiť 'i+1' na začatie od 1.
for i, name in enumerate(l, 1):
print('{:03}_{}'.format(i, name))
# 001_Alice
# 002_Bob
# 003_Charlie
Viac informácií o funkcii format, ktorá sa používa na vyplnenie čísel nulami, nájdete v nasledujúcom článku.
- Súvisiace články:Výpis vyplnených núl, hexadecimálnych čísel atď. pomocou funkcie format() jazyka Python
Zadajte prírastok (krok)
Vo funkcii enumerate() nie je žiadny argument na určenie prírastkového kroku, ale možno ho dosiahnuť nasledujúcim postupom
step = 3
for i, name in enumerate(l):
print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie