Курс Python → Генераторные функции в Python

Генераторные функции (generator functions) в Python представляют собой специальный вид функций, которые позволяют создавать итераторы. Итераторы позволяют поэлементно обходить коллекции данных, не загружая все элементы в память сразу. Если у вас есть необходимость фильтровать или обрабатывать элементы списка, то использование генераторных функций может быть удобным решением.

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

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


def filter_even_numbers(numbers):
    for number in numbers:
        if number % 2 == 0:
            yield number

even_numbers = filter_even_numbers([1, 2, 3, 4, 5, 6])
for number in even_numbers:
    print(number)

В приведенном примере мы создаем генераторную функцию filter_even_numbers, которая фильтрует четные числа из списка. Затем мы создаем объект-генератор even_numbers, который мы можем использовать для итерации по отфильтрованным значениям. При вызове функции print будут выведены только четные числа из списка.

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

Автор урока

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

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

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

  1. Функции в одну строку
  2. Считывание бинарного файла в Python
  3. Официальный канал Python в Telegram
  4. Область видимости переменных
  5. Множественное наследование в Python
  6. Принципы программирования
  7. Профилирование кода на Python
  8. Python Тесты и Гайды
  9. Пересечение списков с использованием множеств
  10. Безопасные SQL-запросы в Python 3.11
  11. Ошибка NotImplemented в Python
  12. Объединение кортежей в Python
  13. Установка виртуального окружения Python
  14. Оператор Walrus в Python 3.8
  15. Освоение Python
  16. Передача неизвестных аргументов в Python.
  17. Обработка ошибок в Python
  18. Работа с изображениями PIL
  19. Операторы объединения в Python 3.9
  20. Основы работы с базами данных в Python
  21. Прокачанный трейсинг ошибок
  22. Оптимизация создания строк
  23. Комментарии в Python
  24. Потоковый ввод в Python
  25. Логирование с Logzero
  26. Декоратор total_ordering для класса Point
  27. Функциональное программирование.
  28. Присвоение и ссылки
  29. Применение функции к списку
  30. Разработка Telegram-ботов
  31. Область видимости переменных
  32. Объединение списков в Python.
  33. TON Smart Challenge #2: участие и подготовка
  34. Оператор match в Python
  35. Оператор объединения словарей
  36. Работа с CSV файлами в Python
  37. Работа с парами ключ-значение
  38. Управление памятью в numpy.
  39. Объединение списков в Python
  40. Преобразование символов в нижний регистр
  41. Функция reduce() из модуля functools
  42. Удаление ссылок в Python
  43. Возврат нескольких значений
  44. F-строки в Python 3.8
  45. Оператор assert в Python
  46. Измерение времени выполнения кода

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