❄️ Iteratory
Iteratory
Iterator to obiekt w Pythonie, który pozwala na sekwencyjne przetwarzanie elementów kolekcji (np. list, krotek, zbiorów) bez załadowania całej struktury do pamięci. Iteratory umożliwiają przechodzenie po elementach jeden po drugim, co jest efektywne, szczególnie przy pracy z dużymi zbiorami danych.
Każda pętla for działa na iteratorach w tle.
Jak działają iteratory?
- Każdy obiekt, który ma metodę
__iter__()i__next__(), jest iteratorem. - Metoda
__iter__()zwraca iterator, a__next__()zwraca kolejny element. Gdy elementów zabraknie, zgłaszany jest wyjątekStopIteration.
Po co nam iteratory?
- Efektywność pamięciowa: Przetwarzają elementy na bieżąco, nie muszą trzymać całej kolekcji w pamięci.
- Niekończące się sekwencje: Można tworzyć iteratory, które generują nieskończone sekwencje danych, np. liczby losowe.
liczby = [1, 2, 3]
it = iter(liczby)
print(next(it))
print(next(it))
print(next(it))
📝 Zadanie dodatkowe
Stwórz własny iterator (klasę) FibonacciIterator(max_elements), który generuje ciąg liczb Fibonacciego. Ciąg Fibonacciego to sekwencja, w której każda kolejna liczba jest sumą dwóch poprzednich, a zaczyna się od 0 i 1.