Sobes.tech
Middle

Mis on iteratorid ja generaatorid Pythonis ning milles nende vahe seisneb?

sobes.tech AI

Vastus AI-lt

Iteraator Pythonis on objekt, mis rakendab meetodid __iter__() ja __next__(). See võimaldab järjestikku läbida kollektsiooni elemente ilma vajaduseta kõiki andmeid korraga mällu laadida.

Generator on spetsiaalne iteratsiooni tüüp, mis luuakse funktsioonide abil, kasutades märksõna yield või generatorilauseid. Generatorid arvutavad väärtused laiskalt vastavalt vajadusele, mis säästab mälu ja võimaldab töötada potentsiaalselt lõpmatute järjestustega.

Peamised erinevused:

  • Iteraator on üldine liides elementide järjestikuseks läbimiseks.
  • Generator on mugav viis iteratsioonide loomiseks yield abil.

Generatori näide:

def count_up_to(n):
    count = 1
    while count <= n:
        yield count
        count += 1

for number in count_up_to(5):
    print(number)

Siin on count_up_to generator, mis tagastab numbrid 1-st kuni n-ni, üks korraga.