Middle
Šta su iteratori i generatori u Pythonu i u čemu je njihova razlika?
sobes.tech АИ
Одговор од АИ
Iterator u Python-u je objekat koji implementira metode __iter__() i __next__(). Omogućava sekvencijalno prolazak kroz elemente kolekcije bez potrebe da se svi podaci odmah učitaju u memoriju.
Generator je poseban tip iteratora koji se kreira pomoću funkcija sa ključnom reči yield ili generator izraza. Generatori lenjo računaju vrednosti po potrebi, što štedi memoriju i omogućava rad sa potencijalno beskonačnim nizovima.
Glavne razlike:
- Iterator je opšti interfejs za sekvencijalno obilazak elemenata.
- Generator je zgodan način za kreiranje iteratora pomoću
yield.
Primer generatora:
def count_up_to(n):
count = 1
while count <= n:
yield count
count += 1
for number in count_up_to(5):
print(number)
Ovde je count_up_to generator koji vraća brojeve od 1 do n, jedan po jedan.