Курс 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. Генерация QR-кодов с библиотекой qrcode
  2. Создание вложенного генератора
  3. Измерение времени выполнения кода
  4. Инверсия списка и строки
  5. Удаление falsy-значений из списка с помощью filter
  6. Возврат нескольких значений
  7. Копирование объектов в Python
  8. Поиск HTML-элементов с BeautifulSoup
  9. Метод classmethod
  10. Оптимизация создания строк
  11. Новшества Flask 2.0
  12. Аннотации типов в Python
  13. Обработка ошибок в JSON данных
  14. Поиск шаблона в начале строки
  15. Запрос DELETE с библиотекой requests
  16. Модуль subprocess: запуск внешних команд
  17. Модуль inspect: получение информации о объектах
  18. Defaultdict в Python
  19. Списковые включения в Python
  20. Преобразование типов данных в set comprehension
  21. Модуль os в Python: работа с файлами
  22. Подписка на каналы разработчиков
  23. Метод gt в Python
  24. Модуль sys: основы
  25. Ограничение ресурсов в Python
  26. GitHub в Telegram: подписка на уведомления
  27. Метод clear для коллекций
  28. Оператор += для объединения строк
  29. Транспонирование матрицы в Python
  30. Генераторы в Python
  31. Оператор assert в Python
  32. Управление памятью в Python
  33. Автоматизация скриптов на AWS Lightsail.
  34. Создание списков в Python
  35. Роль ключевого слова self
  36. Блок else в циклах Python
  37. Зарезервированные слова в Python
  38. Генераторные функции в Python
  39. Метод bool() в Python
  40. Профилирование кода
  41. Декораторы в Python
  42. Форматирование кода на Python
  43. Возвращение нескольких значений
  44. Python reversed() функция
  45. Область видимости переменных в Python
  46. Декораторы в Python
  47. Метод __index__ в Python

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