Sobes.tech
Back to questions
Junior — Middle
99

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

Companies where asked
ИнфоТехСервис
СБЕР Бизнес
АэрофлотАэрофлот
ArendadataArendadata
Soft Media Group
Криптонит
Employ City
СБЕР клаудСБЕР клауд
ООО Авантелеком
Фабрика РешенияФабрика Решения
РунитиРунити
СКАИД
Т-БанкТ-Банк
AstonAston
Effective Mobile
Вкусно и точкаВкусно и точка
Бергман Инфотех
БилайнБилайн
EvappsEvapps

Answer from AI

sobes.tech AI

Генераторы в Python — это функции, которые возвращают итератор и позволяют поэтапно генерировать значения с помощью ключевого слова 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

Таким образом, генераторы позволяют эффективно и удобно работать с последовательностями данных.