Курс 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. Monkey Patching в Python
  2. Установка и использование модуля Wikipedia
  3. Отображение графиков в Jupyter с Matplotlib
  4. Создание виртуальной среды
  5. Создание и использование модулей в Python
  6. Функция map() в Python
  7. Преобразование текста в речь с Python
  8. Определение основы слова с showballstemmer
  9. Удаление знаков препинания в Python
  10. Метод __index__ в Python
  11. Скачать видео с YouTube
  12. Преобразование списка в словарь через генератор
  13. Профилирование данных с Pandas.
  14. Работа с модулем cmath
  15. Генерация случайных чисел в Python
  16. Оператор «is not» в Python
  17. Работа со временем в Python
  18. Игра Виселица на Python
  19. Функции высшего порядка в Python
  20. Метод count в Python: почему count(», ») возвращает 4?
  21. Получение текущей даты и времени
  22. Основы Python
  23. Модуль itertools: комбинации и перестановки
  24. Преобразование регистра строк
  25. Работа с датой и временем в Python
  26. Генераторы в Python
  27. Python: динамическая типизация и проверка типов
  28. Преобразование числа в восьмеричную строку
  29. Создание итерируемых объектов
  30. Объединение, распаковка и деструктуризация
  31. Вычисление разности множеств в Python
  32. Создание функций высшего порядка
  33. Управление виртуальными окружениями в Python
  34. split() — разделение строки
  35. Поиск подстроки в строке
  36. Поиск email
  37. Модуль math: константы π и e
  38. Конкатенация строк в Python
  39. Работа с SQLite в Python
  40. Оператор «not» в Python
  41. Замена текста с помощью sub
  42. Поиск всех индексов подстроки
  43. Numpy: объединение массивов
  44. JMESPath в Python
  45. Работа с областями видимости переменных

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