Курс 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. Работа с рекламными данными в Pandas
  2. Удаление элементов из списка в Python
  3. Сравнение def и lambda-функций
  4. Модуль os: работа с файлами и папками
  5. Логирование с Loguru
  6. Бесконечные списки в Python
  7. Использование модуля __future__
  8. Метод classmethod
  9. *args и **kwargs в Python
  10. capitalize() — изменение регистра первого символа строки
  11. Метод pop() списка
  12. Flask: создание веб-приложений
  13. Работа с NumPy массивами
  14. Удаление элемента из списка в Python
  15. Получение текущего времени в Python
  16. Списковое включение в Python
  17. Сортировка и разворот списка
  18. Работа с URL-адресами в Python
  19. Преобразование типов данных в set comprehension
  20. Создание и операции с дробями
  21. Декораторы в Python
  22. Применение функции к списку
  23. Работа со случайными элементами
  24. Капитализация строк
  25. Встраивание HTML в Jupyter Notebook
  26. Округление чисел с помощью round
  27. Функция print() — вывод информации
  28. Генераторы в Python
  29. Сравнение объектов в Python
  30. Декораторы с аргументами
  31. Работа с каталогами в Python
  32. Создание графиков в терминале
  33. Передача аргументов через **arguments
  34. Проверка типов с использованием isinstance
  35. Форматирование строк с f-строками
  36. Python: отсутствие точек с запятыми
  37. Форматирование строк в Python
  38. Получение атрибутов и методов класса
  39. Декоратор @override
  40. CLI-инструмент howdoi
  41. Форматирование данных с помощью pprint
  42. Получение ID текущего процесса
  43. Аргумент по умолчанию
  44. Протокол управления контекстом
  45. Работа с deque в Python
  46. Преобразование range в итератор

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