Курс 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. Работа с модулем random
  2. Генераторы в Python
  3. Создание пустых функций и классов в Python
  4. Сравнение def и lambda функций в Python
  5. Форматирование строк в Python
  6. Хранение данных с помощью dataclasses
  7. JSON-esque в Python
  8. Фильтрация списка чисел
  9. Упрощенный вывод данных в Python
  10. Оптимизация интернирования строк
  11. Цикл for в Python
  12. Проблемы с dict в Python
  13. Тестирование функции сложения
  14. Подсчет элементов с помощью Counter
  15. Исправление ошибки NameError
  16. Преобразование range в итератор
  17. Удаление пробелов методом translate()
  18. Подписка на @SelectelNews
  19. Генераторы в Python
  20. Оператор Walrus в Python 3.8
  21. Удаление элементов из списка
  22. Итерация по копии коллекции
  23. Стать Python-разработчиком
  24. Компиляция регулярных выражений
  25. Работа с getopt
  26. Проверка существования переменной с оператором :=
  27. Игра «Камень, ножницы, бумага» — Python
  28. Порядок и длина множеств в Python
  29. Декодирование строк в Python
  30. Конструктор в Python
  31. Создание генераторов
  32. Замена текста в Python
  33. Метод append() для списка
  34. Создание таблиц в Python с PrettyTable
  35. Метод get для словарей
  36. Применение команды break
  37. Создание обратного итератора
  38. Модуль functools в Python
  39. Обработка данных в Python
  40. Сортировка списка по индексам
  41. Параллельные вычисления в Python
  42. Установка и использование pyshorteners
  43. Преобразование Excel в PDF с Spire.XLS
  44. Переопределение метода delitem в Python
  45. Python 3.12: Псевдонимы типов
  46. ChainMap.new_child() — добавление нового словаря
  47. Python Translator: создание локальных переводчиков

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