Курс 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. Декораторы для регистрации функций
  3. Проблема сравнения словарей
  4. Блок else в обработке исключений
  5. Копирование объектов в Python
  6. Генераторы в Python
  7. Работа с контекстными переменными
  8. F-строки в Python
  9. Форматирование строк в Python
  10. Автоматизация действий с Pyautogui
  11. Комментарии в Python.
  12. Удаление эмодзи с помощью pandas
  13. Работа с изображениями PIL
  14. Умножение строк и списков
  15. Декоратор защиты анонимных пользователей
  16. Очистка данных с Pandas
  17. Работа с zip()
  18. Операции с матрицами в Python
  19. Перезагрузка оператора в Python
  20. Распаковка аргументов в Python
  21. Синтаксис переменных цикла в Python
  22. Метод get для словаря
  23. Асинхронный код в Python
  24. Отладка регулярных выражений в Python
  25. Хранение данных
  26. Форматирование строк в Python
  27. JSON-esque в Python
  28. Порядок операций в Python
  29. Получение обратного списка чисел
  30. Работа с PosixPath() в Python
  31. Удаление дубликатов из списка
  32. Сравнение строк в Python
  33. Управление контекстом выполнения кода
  34. Определение относительного пути
  35. Константы в модуле cmath
  36. Big O оптимизация
  37. Python: Фильтрация списков с помощью filter()
  38. Отладка производительности Python
  39. Логирование с Logzero
  40. Получение ID процесса
  41. Участие в LP стейкинге Waves
  42. Счетчик ссылок в Python
  43. Преобразование Excel в PDF с Spire.XLS
  44. Метод splitlines() для разделения строк
  45. Обработка ошибки IndexError
  46. Анонимные функции в Python
  47. Функция enumerate() — Python
  48. Операторы сравнения в Python

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