Курс 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. Парсинг веб-страниц с Beautiful Soup
  2. Работа со случайными элементами
  3. Удаление файлов и папок в Python
  4. Получение срезов итераторов
  5. Antigravity модуль
  6. Инверсия списка и строки
  7. Обработка элементов в Python
  8. Создание словарей и множеств в Python.
  9. Объединение коллекций в Python
  10. Объединение множеств в Python
  11. Преобразование числа в восьмеричную строку
  12. Конкатенация строк в Python
  13. Поиск простых чисел
  14. Работа с deque из collections
  15. Работа с контекст-менеджером «with»
  16. Обработка исключений с блоком else
  17. Глобальные переменные в Python
  18. Работа с рекламными данными в Pandas
  19. Кортеж в Python: создание и использование
  20. Настройка вывода NumPy
  21. Частичное совпадение ввода
  22. Открытие, чтение и закрытие файла
  23. Извлечение аудио из видео
  24. Создание функций высшего порядка
  25. Изменение логики работы с временем
  26. Python-dateutil — работа с датами
  27. Цикл for в Python
  28. Расчет времени выполнения кода
  29. Списковый компрехеншен.
  30. Получение списка кортежей из словаря
  31. Метод rxor для операции побитового исключающего «или»
  32. Анализ кода — Python
  33. split() без разделителя
  34. Генерация случайных данных в NumPy
  35. Функция product() из itertools
  36. Реализация метода __abs__ в Python
  37. Метод join() для объединения элементов строки
  38. Многострочные комментарии в Python
  39. Оператор space-invader
  40. Метод bool() в Python
  41. Названия переменных
  42. Работа с CSV в Python
  43. Управление экспортом элементов
  44. Идентификатор объекта в Python
  45. Объединение списков с помощью zip
  46. Манипуляция формой массива в Numpy

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