Курс 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. Безопасный доступ к значениям словаря
  4. Разделение строки в Python
  5. Глобальные переменные в Python
  6. Работа со строками в Python
  7. Использование модуля __future__
  8. Обмен значений переменных в Python
  9. Разрешение имен в Python
  10. Исправление ошибки NameError
  11. Работа со строками в Python
  12. Принцип одной функции
  13. Объединение строк с помощью метода join
  14. Конструктор в Python
  15. Создание копии итератора
  16. Метод join() для объединения элементов строки
  17. Обход словаря в Python
  18. Переопределение унарных операторов
  19. Метод округления чисел
  20. Метод enumerate() в Python
  21. Форматирование данных с помощью pprint
  22. Переопределение метода __or__()
  23. Модуль subprocess: запуск внешних команд
  24. Разработка Telegram-ботов
  25. Оформление текста в консоли с TermColor
  26. Работа со списками
  27. Виртуальные среды в Python
  28. Применение функции к списку
  29. Метод setdefault() в Python
  30. Особенности ключей словаря в Python
  31. Работа с defaultdictами в Python
  32. Асинхронное выполнение задач в Python
  33. Работа с CSV файлами в Python
  34. Установка переменной среды в Python
  35. Создание и использование ChainMap
  36. Возврат нескольких значений
  37. Декораторы в Python
  38. EMOT преобразование эмодзи в текст
  39. Экспорт данных в файл.
  40. Получение текущей даты и времени с помощью datetime
  41. Декораторы в Python
  42. Фильтрация входных данных в Python
  43. Применение функций в Python
  44. Использование *args
  45. Модуль xkcd: загрузка комиксов
  46. Передача неизвестных аргументов в Python.
  47. Работа с zip-архивами в Python
  48. Пропуск строк в файле с itertools
  49. Работа с файловой системой в Python
  50. Изменение логики работы с временем

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