Назад к вопросам
Junior — Middle
63
Встречалось ли вам в практике создание генераторов на основе итераторов?
Ответ от нейросети
sobes.tech AI
Да, создание генераторов на основе итераторов — распространённая практика в Python. Генераторы позволяют лениво вычислять последовательности, что экономит память и повышает производительность.
Пример создания генератора на основе итератора:
class CountDown:
def __init__(self, start):
self.current = start
def __iter__(self):
return self
def __next__(self):
if self.current <= 0:
raise StopIteration
else:
self.current -= 1
return self.current + 1
# Использование итератора
for number in CountDown(5):
print(number)
# Генератор на основе этого итератора
def countdown_gen(start):
current = start
while current > 0:
yield current
current -= 1
for number in countdown_gen(5):
print(number)
Генераторы удобны, когда нужно итерироваться по большим или потенциально бесконечным последовательностям без загрузки всех элементов в память.