Sobes.tech
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.