ГЕНЕРАТОРЫ В PYTHON

В Python генераторы позволяют генерировать последовательности значений "на лету", по мере необходимости. Вместо того чтобы создавать все значения и сохранять их в памяти, генераторы генерируют значения во время выполнения программы, что может сэкономить память и ускорить выполнение.

Генераторы в Python создаются с помощью ключевого слова yield в функции. Функция с yield не возвращает результат, а создает объект-генератор, который может быть использован для выполнения последовательности значений. Каждый вызов next() возвращает следующее значение в последовательности, а выполнение функции приостанавливается до следующего вызова.

Пример генератора, возвращающего бесконечную последовательность четных чисел:

def even_numbers(): n = 0 while True: yield n n += 2gen = even_numbers()print(next(gen)) # 0print(next(gen)) # 2print(next(gen)) # 4

Генераторы также могут использоваться вместо списков при манипуляции большими объемами данных, так как они не создают полный список в памяти. Пример использования генератора для фильтрации значений из итерируемого объекта:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]def even_filter(numbers): for n in numbers: if n % 2 == 0: yield neven_numbers = even_filter(numbers)for n in even_numbers: print(n) # 2, 4, 6, 8

#55. Функция-генератор. Оператор yield - Python для начинающих

48 Генераторы и итераторы. Выражения -генераторы в Python

Уроки Python casts #10 - Что такое yield

Собеседование python разработчик в мой стартап - Федор (пожелал остаться неизвестным)

Знакомимся с генераторами в python

46 Генераторы списков Python - List comprehension

BLGPG-7926DC01B4E4-24-11-23-22

Новые материалы: