Встречается на собеседованиях • сегодня
Согласен ли с тем, что генератор позволяет экономить память, а итератор нет
Генератор — это частный случай итератора, который действительно экономит память, так как генерирует значения на лету (ленивые вычисления) и не хранит всю последовательность в памяти. Например:
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)Вывод: генератор экономит память, а итератор — не всегда (зависит от реализации).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы