Курс 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. SciPy: широкий функционал для математических операций
  2. Numpy: использование Ellipsis
  3. Проверка файла .py на синтаксис.
  4. Pretty-printing JSON в Python
  5. Сериализация данных в JSON с помощью json.dumps
  6. Преобразование текста в нижний регистр
  7. Работа с датой и временем в Python
  8. Обработка исключений в Python
  9. Избегание циклических зависимостей классов в Python
  10. Сравнение объектов в Python
  11. Установка пакетов с помощью pip
  12. Управление контекстом с помощью декоратора contextmanager
  13. Ускорение обработки данных с %autoawait
  14. Работа с комплексными числами
  15. Введение в Python
  16. Работа с датой и временем в Python
  17. Оператор continue в Python
  18. Запрос пароля с помощью getpass
  19. Инициализация переменных
  20. Вакансии в Nebius
  21. Импорт классов из другого файла
  22. Явный импорт переменных
  23. Функция enumerate() в Python
  24. Оптимизация памяти с __slots__
  25. Именование переменных в Python
  26. Возврат значений из генератора
  27. Функции в одну строку
  28. Создание пользовательской коллекции в Python
  29. Работа с getopt
  30. Форматирование вывода списков
  31. Расчет времени выполнения
  32. Списковое включение в Python
  33. Декораторы в Python
  34. Создание пар из последовательностей
  35. Метод setdefault() в Python
  36. Модуль Antigravity в Python 3
  37. Форматирование вывода с F-строками
  38. Создание вложенных циклов for
  39. Нарезка списков в Python
  40. Работа с defaultdictами в Python
  41. Идентификатор объекта в Python
  42. Округление в Python
  43. Python Аргументы по умолчанию
  44. Принципы Zen of Python
  45. Метод __ixor__ для побитового исключающего ИЛИ
  46. Группировка элементов в словарь

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