Курс 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. Генерация тестовых данных с factory_boy
  2. Сравнение объектов в Python
  3. Форматирование данных с помощью pprint
  4. Упрощение условных выражений с тернарным оператором
  5. Операции с массивами в NumPy
  6. PrettyTable: создание таблицы
  7. Метод join() для объединения элементов
  8. Преобразование объекта в строку
  9. Обработка исключения UnboundLocalError
  10. Ускорение выполнения кода в Python
  11. Получение частей дроби
  12. Форматирование строк в Python
  13. Многострочные комментарии в Python
  14. Инверсия списка и строки
  15. Перезагрузка оператора в Python
  16. Основы Python за 14 дней
  17. %pinfo: получение информации об объекте
  18. Преобразование строки в число
  19. Bootle — простой веб-фреймворк
  20. Управление контекстом с помощью декоратора contextmanager
  21. Генераторы данных
  22. Управление доступом к модулю
  23. Оператор is в Python
  24. Преобразование в float
  25. Запуск файлового сервера
  26. Функции с необязательными аргументами
  27. Подсчет часто встречающихся элементов
  28. Встроенные функции Python
  29. Создание тестовых данных с Faker
  30. Удаление файлов с shutil.os.remove()
  31. Извлечение новостей с помощью newspaper3k
  32. Операторы увеличения и уменьшения в Python
  33. Генерация фальшивых данных с Faker
  34. Решение переменной Шредингера
  35. Форматирование строк в Python
  36. Метод __iand__ для пользовательских классов
  37. Нахождение самого длинного слова в списке с помощью max
  38. Установка и использование Python-dateutil
  39. Работа с часовыми поясами в Python
  40. Метод ifloordiv для пользовательских классов
  41. Аннотации типов в Python
  42. Оптимизация создания строк
  43. Метод clear для коллекций
  44. Открытие и запись файлов
  45. Безопасные SQL-запросы в Python 3.11

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