Курс 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. Повторение элементов в Python
  3. Печать месячного календаря
  4. Проверка условий в Python
  5. Функция map() и ленивая оценка
  6. Определение наиболее частого элемента с помощью collections.Counter
  7. Оператор «not» в Python
  8. Участие в сообществе @selectel
  9. Введение в PyTorch
  10. Форматирование строк в Python
  11. Иерархия классов в Python
  12. Установка и использование Telegram API в Python
  13. Оптимизация поиска в словарях
  14. Работа с комплексными числами
  15. Очистка данных в Python
  16. Создание словарей и множеств в Python.
  17. Константы в модуле cmath
  18. Форматирование данных с помощью pprint
  19. Форматирование заголовков в Python
  20. Форматирование строк в Python
  21. Проверка запуска скрипта или импорта модуля
  22. Проверка на палиндром
  23. Округление в Python
  24. Добавление элементов в список: append() vs extend()
  25. Установка и использование модуля Wikipedia
  26. Наследование в программировании
  27. Логирование с Logzero
  28. Пропуск строк в файле с itertools
  29. Создание словарей с defaultdict()
  30. Работа со строками в Python
  31. Конкатенация строк в Python
  32. Лямбда-функции в Python
  33. Решение переменной Шредингера
  34. Преобразование кортежа в словарь.
  35. Получение срезов итераторов
  36. Проверка на истинность объектов в Python
  37. Работа с YAML в Python
  38. Форматирование строк в Python
  39. Изменение переменной в Python: nonlocal
  40. Работа с контекстными переменными
  41. Однострочники Python
  42. Выборка чисел
  43. Форматирование строк с помощью f-строк
  44. Печать комбинаций в Python с Itertools
  45. Построение графиков в терминале с bashplotlib
  46. Python enumerate() использование
  47. Оператор in и not in в Python

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