Курс Python → Генераторы в Python

Генераторные функции — это мощный инструмент в Python, который позволяет создавать итераторы с минимальным использованием памяти. Вместо того чтобы создавать список или кортеж сразу со всеми значениями, генераторная функция генерирует значения по мере необходимости. Это особенно полезно, когда у вас есть большой объем данных, которые необходимо обработать поэлементно.

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


def my_generator():
    for i in range(5):
        yield i

gen = my_generator()
for value in gen:
    print(value)

В этом примере функция my_generator является генераторной функцией, которая возвращает числа от 0 до 4. При вызове функции my_generator() создается объект-генератор, который можно использовать в цикле for для обхода всех значений, сгенерированных функцией.

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

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Пространство имен в Python
  2. Контекстный менеджер в Python
  3. Обезопасьте ввод данных
  4. Оператор «and» в Python
  5. Работа со строками в Python
  6. Оператор «not» в Python
  7. Возврат нескольких значений
  8. Каналы Senior: Python, Java, Frontend, SQL, C++
  9. Декораторы в Python
  10. Операции с комплексными числами
  11. Работа с модулем random
  12. Копирование словарей и списков в Python
  13. Печать календаря
  14. Lambda Functions in Python
  15. Потоковый ввод в Python
  16. Модуль Antigravity в Python 3
  17. Сокращение ссылок с pyshorteners
  18. Работа с Telegram API на Python
  19. Concrete Paths в Python
  20. Python Calendar Usage
  21. Приближение чисел в Python
  22. Объединение списков в Python.
  23. Установка максимального количества цифр
  24. Объединение списков с помощью zip
  25. Метод __call__ в Python
  26. Работа с NumPy.linalg
  27. Создание детектора плагиата
  28. Списковые включения в Python
  29. Поиск с библиотекой Google
  30. Удаление дубликатов в pandas
  31. Безопасный доступ к значениям словаря
  32. Управление ресурсами в Python
  33. Управление User-Agent в Python
  34. Атрибуты объекта в Python
  35. Работа с Path в Python
  36. Многопоточность в Python
  37. Декоратор @override
  38. Работа с f-строками 2.0
  39. Преобразование в float
  40. Retrying в Python: повторные вызовы
  41. Python reversed() функция
  42. Удаление ресурса в Python
  43. Логирование с Loguru
  44. Мониторинг работы программы Py-spy
  45. Получение атрибутов и методов класса

Marketello читают маркетологи из крутых компаний