Sobes.tech
Back to questions
Junior — Middle
88

Объясните принцип работы генераторов в Python и их основные преимущества

Companies where asked
Золотое ЯблокоЗолотое Яблоко
РостелекомРостелеком
ITFB Group
Цифрум

Answer from AI

sobes.tech AI

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

Основной принцип работы:

  • Вместо обычного return используется yield, который возвращает значение и приостанавливает выполнение функции.
  • При следующем вызове генератора выполнение продолжается с места после yield.

Преимущества генераторов:

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

Пример генератора:

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

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

Этот код выведет числа от 1 до 5, генерируя их по одному.