Курс 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. Капитализация строк
  3. Создание списка через итерацию
  4. PrettyTable: создание таблицы
  5. Метод enumerate() в Python
  6. Ускорение обработки данных с %autoawait
  7. Лямбда-функции в Python
  8. Python: возвращение нескольких значений
  9. Прокачанный трейсинг ошибок
  10. Модуль inspect
  11. Моржовый оператор в Python 3.8
  12. Оператор «or» в Python
  13. Распаковка значений в Python
  14. Функция reduce() в Python
  15. Codecademy в Telegram
  16. Работа с deque в Python
  17. Создание итерируемых объектов
  18. Python Метод Union Множеств
  19. Работа с асинхронными задачами в Python
  20. Поиск индекса элемента в списке
  21. Копирование списков в Python
  22. Изменение элемента списка
  23. Генератор бросков кубиков
  24. Работа со строками в Python
  25. Генерация резюме в Gensim
  26. Поиск частого элемента
  27. Повторение и перенос строки
  28. PUT запрос для обновления данных
  29. Инверсия списка/строки в Python
  30. Работа с CSV файлами
  31. Избегайте пустого списка
  32. Установка Python — Простое руководство
  33. Замена текста с помощью sub
  34. Удаление элемента из списка в Python
  35. Каналы Senior: Python, Java, Frontend, SQL, C++
  36. Подписка на SelectelNews в Twitter
  37. Исключение NotImplementedError
  38. Определение наиболее частого элемента с помощью collections.Counter
  39. Бесконечная проверка в Python
  40. Concrete Paths — метод .with_suffix()
  41. Работа с модулем random
  42. Метод gt в Python
  43. Многострочные комментарии в Python
  44. Подчеркивание в REPL
  45. Логические значения в Python
  46. Транспонирование 2D-массива с помощью zip

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