Pomocí funkce enumerate() jazyka Python můžete v cyklu for získat číslo indexu (počet, pořadí) i prvky iterovatelného objektu, jako je seznam nebo tuple.
Tento článek vysvětluje základy funkce enumerate().
- Funkce pro získání indexu v cyklu for:
enumerate()
- Normální smyčka for
- Pro smyčku pomocí funkce enumerate()
- Začátek indexu funkce enumerate() na hodnotě 1 (nenulová hodnota).
- Zadejte přírůstek (krok)
Funkci enumerate() lze použít k získání indexu ve smyčce for.
Normální smyčka for
l = ['Alice', 'Bob', 'Charlie']
for name in l:
print(name)
# Alice
# Bob
# Charlie
Pro smyčku pomocí funkce enumerate()
Jako argument funkce enumerate() zadejte iterovatelný objekt, například seznam.
V tomto pořadí můžete získat indexové číslo a prvek.
for i, name in enumerate(l):
print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie
Začátek indexu funkce enumerate() na hodnotě 1 (nenulová hodnota).
Jak je uvedeno v příkladu výše, ve výchozím nastavení začíná index funkce enumerate() od 0.
Pokud chcete začít jiným číslem než 0, zadejte jako druhý argument funkce enumerate() libovolné počáteční číslo.
Chcete-li začít od začátku, postupujte takto.
for i, name in enumerate(l, 1):
print(i, name)
# 1 Alice
# 2 Bob
# 3 Charlie
Samozřejmě můžete začít s jinými čísly.
for i, name in enumerate(l, 42):
print(i, name)
# 42 Alice
# 43 Bob
# 44 Charlie
Užitečné, pokud chcete vytvořit postupně číslovaný řetězec; je rozumnější zadat počáteční číslo jako druhý argument funkce enumerate() než použít 'i+1' pro začátek od 1.
for i, name in enumerate(l, 1):
print('{:03}_{}'.format(i, name))
# 001_Alice
# 002_Bob
# 003_Charlie
Další informace o funkci format, která se používá k doplňování čísel nulami, najdete v následujícím článku.
- Související články:Výpis vyplněných nul, hexadecimálních čísel atd. pomocí funkce format() jazyka Python
Zadejte přírůstek (krok)
Ve funkci enumerate() není k dispozici žádný argument pro zadání přírůstkového kroku, ale lze ho dosáhnout následujícím způsobem.
step = 3
for i, name in enumerate(l):
print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie