Middle
Ce sunt iteratorii și generatorii în Python și care este diferența dintre ei?
sobes.tech AI
Răspuns de la AI
Un iterator în Python este un obiect care implementează metoda __iter__() și metoda __next__(). Acesta permite parcurgerea secvențială a elementelor unei colecții fără a fi nevoie să încarce toate datele în memorie deodată.
Un generator este un tip special de iterator creat cu ajutorul funcțiilor cu cuvântul cheie yield sau expresii generator. Generatorii calculează valorile leneș, pe măsură ce sunt necesare, economisind memorie și permițând lucrul cu secvențe potențial infinite.
Diferențele principale:
- Un iterator este o interfață generală pentru parcurgerea elementelor în mod secvențial.
- Un generator este o modalitate convenabilă de a crea iteratori folosind
yield.
Exemplu de generator:
def count_up_to(n):
count = 1
while count <= n:
yield count
count += 1
for number in count_up_to(5):
print(number)
Aici, count_up_to este un generator care returnează numere de la 1 la n, unul câte unul.