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

Python. Iteratory - efektywne przetwarzanie sekwencji

07.2024 | python | iteratory | przetwarzanie sekwencji

Iteratory są fundamentalnym konceptem w Pythonie, umożliwiającym efektywne przetwarzanie sekwencji danych. 

Zobaczmy zatem, jakie są kluczowe aspekty iteratorów w Pythonie.

Czym są iteratory?

Iteratory to obiekty, które implementują metody __iter__() i __next__(). Pozwalają one na sekwencyjne przeglądanie elementów kolekcji, jeden po drugim, bez konieczności ładowania całej kolekcji do pamięci.

Podstawowe cechy

  1. Jednorazowe użycie: Iteratory można przejść tylko raz. Po wyczerpaniu elementów, iterator nie resetuje się automatycznie.
  2. Oszczędność pamięci: Idealne do pracy z dużymi zbiorami danych, gdyż nie wymagają załadowania całej sekwencji do pamięci.
  3. Leniwa ewaluacja: Elementy są generowane na żądanie, co może poprawić wydajność.

Przykład implementacji

class MyIterator:
    def __init__(self, max):
        self.max = max
        self.n = 0

    def __iter__(self):
        return self

    def __next__(self):
        if self.n < self.max:
            result = 2 ** self.n
            self.n += 1
            return result
        else:
            raise StopIteration

# Użycie
for i in MyIterator(5):
    print(i)

# Wynik: 1, 2, 4, 8, 16

Wbudowane funkcje i iteratory

Python oferuje wiele wbudowanych funkcji, które zwracają iteratory, np.:

  • range(): Generuje sekwencję liczb.
  • enumerate(): Dodaje licznik do iterowalnego obiektu.
  • zip(): Łączy elementy z wielu iteratorów.

Korzyści z używania iteratorów

  1. Umożliwiają przetwarzanie dużych zbiorów danych w sposób wydajny pamięciowo.
  2. Pozwalają na tworzenie nieskończonych sekwencji.
  3. Są podstawą dla generatorów, które jeszcze bardziej upraszczają tworzenie iteratorów.

Iteratory są potężnym narzędziem w Pythonie, szczególnie przydatnym w przetwarzaniu danych i programowaniu funkcyjnym.

Wdrażam rozwiązania analityczne, buduję raporty zarządcze i pomagam zrozumieć dane.

Korzystam z Google Marketing Cloud, Microsoft Power BI, Google Cloud oraz Python.

Pracowałem m.in. dla Credit Suisse, Phonak, Hansaton, Unitron, Nestle, IBM, Play.

Jestem współtwórcą grupy Hexe Capital SA.

Zapraszam do lektury i współpracy.

Krzysztof Surowiecki

Chcę porozmawiać o współpracy →

Moje certyfikaty