Курс 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. Генерация чисел с range()
  2. Логирование с Logzero: ротация файла
  3. Многострочные комментарии в Python
  4. Codecademy в Telegram
  5. Декоратор Ajax required
  6. Пересечение списков с использованием множеств
  7. Передача аргументов в Python
  8. Изучение объектов с помощью dir()
  9. Вычисление времени выполнения
  10. Работа с Path в Python
  11. Вычисление натурального логарифма в NumPy
  12. Преобразование текста в речь с Python
  13. Метод __index__ в Python
  14. Инверсия списка и строки
  15. Преобразование символов в нижний регистр
  16. Применение функции к списку
  17. Обратное распространение ошибки
  18. Поиск шаблона в начале строки
  19. Обработка ошибок в Python
  20. Поиск уникальных и повторяющихся элементов
  21. Подсчет элементов в Python
  22. Переворот строки с использованием цикла
  23. Оператор += в Python
  24. Преобразование данных в Python
  25. Управление виртуальными средами в Python
  26. Принципы Zen of Python
  27. Проверка переменных окружения в Python
  28. Функция count() в Python
  29. Сортировка с помощью key
  30. Оператор assert в Python
  31. Метод get() для словарей
  32. Дефолтные параметры в Python
  33. Тернарный оператор в Python
  34. Использование функции product
  35. Список и кортеж в Python
  36. Нарезка списков в Python
  37. Копирование объектов в Python
  38. Объединение словарей в Python
  39. Удаление первого элемента списка
  40. Оператор «not» в Python
  41. Namedtuple в Python
  42. Работа с кортежами

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