Python Generatory — pisz super wydajny kod!
Generatory w języku Python to specjalny typ funkcji, który umożliwia iterację sekwencji wartości bez konieczności przechowywania całej sekwencji w pamięci. Są potężnym narzędziem do pracy z dużymi zbiorami danych lub do generowania nieskończonych sekwencji wartości.
Czym różni się od zwykłej funkcji?
Funkcja generatora jest zdefiniowana jak normalna funkcja, ale zamiast słowa kluczowego return używa słowa kluczowego yield . Gdy wywoływana jest funkcja generatora, zwraca ona obiekt iteratora, którego można użyć do iteracji wartości generowanych przez funkcję.
Dlaczego warto korzystać z generatorów?
Jedną z głównych zalet generatorów jest to, że są wydajne pod względem pamięci. Ponieważ generują tylko jedną wartość na raz, mogą obsługiwać duże zestawy danych lub nieskończone sekwencje bez zużywania dużej ilości pamięci.
Kolejną zaletą generatorów jest to, że są leniwe. Oznacza to, że generują tylko wartości, które są potrzebne, zamiast generować wszystkie wartości z góry. Może to być przydatne do pracy z dużymi zestawami danych lub do generowania nieskończonych sekwencji.
Ok.. jak go używać?
Poniższa funkcja generatora generuje ciąg Fibonacciego:
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
fib = fibonacci()
print(next(fib)) # 0
print(next(fib)) # 1
print(next(fib)) # 1
print(next(fib)) # 2
for number in fibonacci():
if number > 100:
break
print(number)
Generatorów można również używać w połączeniu z innymi funkcjami Pythona, takimi jak rozumienie list lub moduł itertools, w celu tworzenia potężnego i wyrazistego kodu. Możesz spróbować sam!
Powodzenia Szilo

![Czym w ogóle jest lista połączona? [Część 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































