Курс 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. Функция enumerate() в Python
  3. Оптимизация методов в Python 3.7
  4. Добавление кнопки в tkinter
  5. Метод eq для сравнения объектов
  6. Многоточие в Python
  7. Создание класса в Python
  8. Создание новой даты в Python
  9. Работа с *args и **kwargs в Python
  10. Закрытие файла в Python
  11. Подсчет элементов с помощью Counter из collections
  12. Настройка вывода в Numpy
  13. inspect в Python: анализ кода
  14. Логирование с Logzero
  15. Применение функции к списку
  16. Список и кортеж в Python
  17. Очистка данных с Pandas
  18. Мониторинг работы программы Py-spy
  19. Защита данных в Python
  20. Экспорт функций в Python
  21. Преобразование списка в словарь через генератор
  22. Обработка исключений в Python
  23. Функция zip() в Python
  24. Изменение списка срезами
  25. Просмотр внешних файлов в %pycat
  26. Многострочные строки в Python
  27. Чтение бинарного файла в Python.
  28. Создание .exe файла с pyinstaller
  29. List Comprehension Tutorial
  30. Глубокое копирование объектов
  31. Нахождение хеша для бесконечности и NaN в Python
  32. Лямбда-функции в Python
  33. Метод is_absolute() для PurePath
  34. Numpy: использование Ellipsis
  35. Чтение и запись TOML-конфигов
  36. Удаление элемента по индексу в Python
  37. Обработка ошибок ввода данных
  38. Логирование с Logzero
  39. Удаление дубликатов из списка
  40. Оператор continue в Python
  41. Работа с исключениями в Python
  42. Уникальность ключей в словаре
  43. Названия переменных
  44. Удаление ключа из словаря
  45. Генераторы списков
  46. Реверс строки в Python
  47. Освоение Python
  48. Работа с NumPy.linalg

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