Sobes.tech
Назад к вопросам
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)

Генераторы удобны, когда нужно итерироваться по большим или потенциально бесконечным последовательностям без загрузки всех элементов в память.