Курс 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. Очистка списка от False, None, 0, «»
  2. Функция zip() в Python
  3. Метод ipow для возведения в степень
  4. Избегайте пустого списка
  5. Философия Python
  6. Распаковка значений в Python
  7. Декораторы в Python
  8. Тип данных TypeVarTuple
  9. Сортировка в Python
  10. Раздувающийся словарь в Python
  11. Объединение списков в Python
  12. Ошибка NotImplemented в Python
  13. Участие в LP стейкинге Waves
  14. Ключевое слово global в Python
  15. Работа со словарями с defaultdict из collections
  16. Копирование словарей и списков в Python
  17. Работа с путями в Python
  18. Оператор (*) в Python
  19. Работа с CSV файлами в Python
  20. Лямбда-функции в defaultdict
  21. Создание списков в Python
  22. Названия переменных
  23. Работа с пакетами
  24. Открытие и редактирование скриптов Python
  25. Атрибуты класса и экземпляра
  26. Логические операторы в Python
  27. Тест скорости набора текста на Python
  28. Python: библиотеки и функции
  29. Просмотр внешних файлов в %pycat
  30. Измерение потребления памяти при сортировке
  31. Генераторы в Python
  32. Асинхронный код в Python
  33. Добавление кнопки в tkinter
  34. Работа с CSV в Python
  35. Создание вкладок с TKinter
  36. Структуры данных в Python
  37. Присвоение значений переменным в Python
  38. Работа с GitHub в Telegram
  39. Создание .exe файла с pyinstaller
  40. Операторы объединения в Python 3.9
  41. Возврат нескольких значений
  42. Оптимизация интернирования строк
  43. Python: Фильтрация списков с помощью filter()
  44. Распаковка аргументов в Python
  45. Модуль array: создание и использование массивов
  46. Преобразование регистра строк
  47. Измерение времени выполнения
  48. Установка Git и AWS CLI

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