Sobes.tech
Middle
22

Что такое генераторы в Python и зачем они нужны?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

Генераторы в Python — это специальные функции, которые позволяют итерироваться по последовательности значений, не создавая всю последовательность сразу в памяти. Вместо return они используют ключевое слово yield, которое возвращает значение и приостанавливает выполнение функции, сохраняя её состояние для следующего вызова.

Зачем нужны генераторы:

  • Экономия памяти: не нужно хранить всю коллекцию данных, особенно если она большая или бесконечная.
  • Ленивые вычисления: значения вычисляются по мере необходимости.
  • Удобство работы с потоками данных или большими файлами.

Пример генератора, который выдаёт числа от 0 до n-1:

def count_up_to(n):
    i = 0
    while i < n:
        yield i
        i += 1

for number in count_up_to(5):
    print(number)

Вывод:

0
1
2
3
4