Python, Použití funkce enumerate(): Získání prvků a indexů seznamu.

Podnikání

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.

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