Python, Użycie funkcji enumerate(): Uzyskiwanie elementów i indeksów listy

Biznes

Używając funkcji enumerate() Pythona, możesz uzyskać numer indeksu (count, order), jak również elementy obiektu iterowalnego, takiego jak lista lub tuple w pętli for.

Ten artykuł wyjaśnia podstawy działania funkcji enumerate().

  • Funkcja do uzyskania indeksu w pętli for: enumerate()
    • Normalna pętla for
    • Dla pętli używającej funkcji wylicz()
  • Rozpocznij indeks funkcji enumerate() od 1 (wartość niezerowa)
  • Określenie przyrostu (kroku)

Funkcja enumerate() może być użyta do uzyskania indeksu w pętli for.

Normalna pętla for

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

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

Dla pętli używającej funkcji wylicz()

Jako argument funkcji enumerate() podaj obiekt iterowalny, taki jak lista.

Możesz uzyskać numer indeksu i element w tej kolejności.

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

Rozpocznij indeks funkcji enumerate() od 1 (wartość niezerowa)

Jak pokazano w powyższym przykładzie, domyślnie indeks funkcji enumerate() zaczyna się od 0.

Jeśli chcesz zacząć od liczby innej niż 0, podaj dowolną liczbę początkową jako drugi argument funkcji enumerate().

Aby zacząć od początku, wykonaj następujące czynności.

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

Oczywiście, można zacząć od innych liczb.

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

Przydatne, gdy chcesz utworzyć łańcuch numerowany sekwencyjnie; mądrzej jest podać numer początkowy jako drugi argument funkcji enumerate() niż użyć 'i+1' by zacząć od 1.

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

Więcej informacji na temat funkcji format, która służy do wypełniania liczb zerami, można znaleźć w poniższym artykule.

Określenie przyrostu (kroku)

W funkcji enumerate() nie ma argumentu do określenia kroku przyrostowego, ale można to osiągnąć wykonując następujące czynności

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