Курс 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. Установка библиотек в Python
  3. Поток данных в Python
  4. Преобразование генераторов в циклы
  5. Ограничение ресурсов в Python
  6. Списковое включение в Python
  7. Оператор «and» в Python
  8. Python Аргументы по умолчанию
  9. Проверка переменных окружения в Python
  10. Транспонирование 2D-массива с помощью zip
  11. Хешируемые ключи в Python
  12. Подсчет элементов с помощью Counter
  13. Скрытие вывода данных
  14. Форматирование строк в Python
  15. Просмотр внешнего файла в Python
  16. Оптимизация поиска в словарях
  17. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  18. Метод Self в Python
  19. Установка и использование модуля Wikipedia
  20. Создание новых списков через list comprehensions
  21. Импортирование в Python
  22. Метод rrshift для пользовательских объектов
  23. Оптимизация интернирования строк
  24. Списки в Python: синтаксис представления
  25. Декоратор total_ordering для класса Point
  26. Работа с изображениями PIL
  27. Преобразование многоуровневого словаря
  28. Метод сравнения объектов в Python
  29. Хранение данных
  30. Лямбда-функции в Python
  31. Python Enumerate
  32. Функция all() в Python
  33. Структура данных словарь в Python
  34. Списковый компрехеншен.
  35. Подсчет часто встречающихся элементов
  36. EMOT преобразование эмодзи в текст
  37. Метод rxor для операции побитового исключающего «или»
  38. Работа с кортежами в Python
  39. Работа с географическими данными в Python
  40. Генераторные выражения и islice.
  41. Обработка исключения UnboundLocalError
  42. Defaultdict в Python
  43. Обработка исключений в Python
  44. Красивый вывод списка
  45. Работа с контекстными переменными
  46. Управление пакетами с pip
  47. Вложенные функции в Python
  48. Декораторы в Python
  49. Вывод баннеров

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