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
yieldsegí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.