Sobes.tech
Middle

Mi az az iterátor és generátor Pythonban, és miben különböznek?

sobes.tech MI

Válasz az MI-től

A Pythonban az iterator olyan objektum, amely megvalósítja a __iter__() és a __next__() metódusokat. Lehetővé teszi az elemek szekvenciális bejárását anélkül, hogy az összes adatot egyszerre töltenénk be a memóriába.

A generátor egy speciális típusú iterator, amelyet yield kulcsszóval vagy generátor kifejezésekkel hozunk létre. A generátorok lustán számítják ki az értékeket szükség szerint, így memória takarékosak és lehetővé teszik potenciálisan végtelen sorozatok kezelését.

Fő különbségek:

  • Az iterator általános interfész az elemek szekvenciális bejárására.
  • A generátor kényelmes módja az iteratorok létrehozásának a yield segítségével.

Generátor példa:

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

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

Itt a count_up_to egy generátor, amely 1-től n-ig számokat ad vissza egyenként.