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

Согласен ли с тем, что генератор позволяет экономить память, а итератор нет

Генератор — это частный случай итератора, который действительно экономит память, так как генерирует значения на лету (ленивые вычисления) и не хранит всю последовательность в памяти. Например:

python
def squares(n):
    for i in range(n):
        yield i ** 2  # Генерирует значения по одному

Итератор же просто реализует протокол __iter__/__next__, но может загружать все данные в память (например, список):

python
class Squares:
    def __init__(self, n):
        self.data = [i ** 2 for i in range(n)]  # Хранит всё в памяти
    def __iter__(self):
        return iter(self.data)

Вывод: генератор экономит память, а итератор — не всегда (зависит от реализации).

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

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

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

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