Курс 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. Модуль inspect: получение информации о объектах
  2. Функции в Python
  3. Обработка ошибок в Python
  4. Проблемы с dict в Python
  5. Генерация случайных чисел в Python
  6. Разделение строки с регулярными выражениями
  7. Перетасовка списков в Python
  8. Работа со строками в Python.
  9. Работа с функцией next() в Python
  10. Работа со строками в Python
  11. Установка и загрузка Instaloader
  12. Выбор редактора кода.
  13. Автоматизация скриптов на AWS Lightsail.
  14. Работа с файлами в Python
  15. Подсказки типов в Python
  16. Форматирование строк с f-строками
  17. Модуль inspect
  18. Очистка вывода в Python
  19. Разделение строки в Python
  20. Срезы в Numpy
  21. Множественное присваивание в Python
  22. Работа с утверждениями в Python
  23. Профилирование данных с Pandas
  24. Определение объема памяти объекта
  25. Mad Libs Generator
  26. Метод index() в Python
  27. Профилирование с cProfile
  28. Counter() — подсчет элементов
  29. Python и Монти Пайтон
  30. Форматирование вывода с F-строками
  31. Кортежи в Python: особенности и преимущества
  32. Срез в Python
  33. Библиотека funcy: удобные утилиты
  34. Обработка исключений в Python
  35. Создание итератора
  36. lru_cache оптимизация функций
  37. Оператор «or» в Python
  38. Объединение объектов в Python
  39. Сортировка элементов в Python
  40. Преобразование данных в Python
  41. Преобразование документов в PDF с помощью Spire.Office
  42. Логирование с Logzero
  43. Оператор in для Python
  44. Установка и использование TensorFlow

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