Porady. Pandas. Python. Django. Microsoft Power BI. Tableau.

Python. Metoda enumerate()

| python | enumerate | iterowanie po sekwencjach

Funkcja enumerate() w Pythonie to wbudowana funkcja, która pozwala iterować po sekwencjach (takich jak listy czy krotki), jednocześnie uzyskając indeksy elementów. Służy do wygodnego dostępu zarówno do pozycji, jak i wartości w pętli for, eliminując potrzebę ręcznego licznika.

Przykład w e-commerce

Rozważmy analizę danych sprzedażowych w e-commerce: mamy listę produktów z ich cenami i chcemy wyświetlić ranking najlepiej sprzedających się towarów z numeracją pozycji.

# Lista produktów z e-sklepu: nazwy i liczba sprzedanych sztuk
produkty = [
("Laptop Dell", 150),
("Smartfon iPhone", 320),
("Słuchawki Sony", 85),
("Tablet Samsung", 210),
("Klawiatura mechaniczna", 95)
]

# Sortujemy produkty malejąco według liczby sprzedanych sztuk
produkty.sort(key=lambda x: x, reverse=True)

print("Ranking najlepiej sprzedających się produktów:")

# Używamy enumerate() do numeracji rankingu (indeks + 1 dla pozycji 1, 2, 3...)
for pozycja, (nazwa, sprzedane) in enumerate(produkty, start=1):
print(f"{pozycja}. {nazwa}: {sprzedane} szt.")

# Wyjaśnienie: enumerate() zwraca krotki (indeks, wartość), start=1 zmienia początek numeracji

Wynik:

Ranking najlepiej sprzedających się produktów:
1. Smartfon iPhone: 320 szt.
2. Tablet Samsung: 210 szt.
3. Laptop Dell: 150 szt.
4. Klawiatura mechaniczna: 95 szt.
5. Słuchawki Sony: 85 szt.

Zastosowanie

Kiedy używać enumerate()? Ta funkcja jest nieoceniona w scenariuszach wymagających dostępu do indeksów podczas iteracji:

  • Analiza danych: numerowanie wierszy w raportach sprzedażowych lub logach transakcji.
  • Przetwarzanie list: modyfikacja elementów po indeksie, np. aktualizacja stanów magazynowych.
  • Generowanie menu lub rankingów: w aplikacjach e-commerce do wyświetlania list produktów z pozycjami.
  • Unikanie błędów: zamiast i = 0; for item in lista: ... i += 1, co jest podatne na pomyłki.

Wybieraj ją zawsze, gdy potrzebujesz eleganckiego połączenia indeksu i wartości - kod staje się czytelniejszy i krótszy.

Podsumowanie

enumerate() to mała zmiana w kodzie, która znacząco poprawia jego czytelność i bezpieczeństwo w projektach data science czy e-commerce.