Встречается на собеседованиях • сегодня

Какие есть способы написать генератор

В Python есть несколько способов создания генераторов:

  1. Функция с yield - самый распространённый способ:
python
def count_up_to(n):
    i = 1
    while i <= n:
        yield i
        i += 1
  1. Генераторное выражение - аналогично list comprehension, но в круглых скобках:
python
squares = (x*x for x in range(10))
  1. Класс с iter и next - можно создать собственный итератор:
python
class Count:
    def __init__(self, limit):
        self.limit = limit
        self.current = 0
    
    def __iter__(self):
        return self
    
    def __next__(self):
        if self.current < self.limit:
            self.current += 1
            return self.current
        raise StopIteration

Генераторы ленивы - вычисляют элементы по требованию и экономят память. Они особенно полезны при работе с большими или бесконечными последовательностями.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы