Курс 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. Конкатенация списков в Python
  2. Применение функции map() в Python
  3. Генерация случайных данных в NumPy
  4. Анонимные функции Lambda
  5. Очистка списка от False, None, 0, «»
  6. Определение объема памяти объекта
  7. Очистка данных в Python
  8. Создание вложенных циклов for
  9. Создание и обучение модели с Keras
  10. Создание новых списков в Python
  11. Python UserString — создание подклассов строк
  12. Любовь к Python
  13. Python enumerate() функции
  14. Генератор бросков кубиков
  15. Освобождение памяти в Python
  16. TON Smart Challenge #2: участие и подготовка
  17. Вычисление разности множеств в Python
  18. Python enumerate() для работы с индексами
  19. Lambda Functions in Python
  20. Подсчет элементов в Python
  21. PrettyTable: создание таблицы
  22. Создание namedtuple из словаря
  23. Настройка шрифта и цвета в Tkinter
  24. Модуль subprocess: запуск внешних команд
  25. Методы list в Python
  26. Считывание бинарного файла в Python
  27. Работа с кортежами в Python
  28. Хранение переменных в словаре.
  29. Фильтрация списка чисел
  30. Декоратор @override
  31. Генераторы в Python
  32. Поиск индексов в списке
  33. Декораторы в Python
  34. Работа с переменными в Python
  35. Antigravity модуль
  36. Вакансии в Nebius
  37. Метод Self в Python
  38. Подсчет элементов с помощью Counter из collections
  39. Объединение списков с использованием itertools.chain
  40. Сокращение ссылок с pyshorteners
  41. Операция += для списков
  42. Big O оптимизация
  43. Игра «Камень, ножницы, бумага» — Python
  44. F-строки в Python 3.8
  45. Очистка данных с Pandas
  46. Возврат нескольких значений из функции
  47. Оператор морж в Python 3.8
  48. Объединение словарей в Python
  49. Проверка переменных окружения в Python

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