Middle
Какви са итераторите и генераторите в Python и каква е разликата между тях?
sobes.tech AI
Отговор от AI
Итератор в Python е обект, който реализира методите __iter__() и __next__(). Той позволява последователно обхождане на елементите на колекция без необходимостта да зареждате всички данни веднага в паметта.
Генераторът е специален вид итератор, който се създава с помощта на функции с ключовата дума yield или генераторни изрази. Генераторите лениво изчисляват стойностите при необходимост, което спестява памет и позволява работа с потенциално безкрайни последователности.
Основни разлики:
- Итераторът е общ интерфейс за последователно обхождане на елементите.
- Генераторът е удобен начин за създаване на итератори с помощта на
yield.
Пример за генератор:
def count_up_to(n):
count = 1
while count <= n:
yield count
count += 1
for number in count_up_to(5):
print(number)
Тук count_up_to е генератор, който връща числата от 1 до n, по едно за всяко.