Курс 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. Изменение IP-адреса в Python
  2. Python UserString — создание подклассов строк
  3. Использование двоеточия в Python
  4. Хешируемые ключи в Python
  5. Расширение операции побитового «и» в Python
  6. Python reversed() функция
  7. Проверка индексов коллекции
  8. Поиск наиболее частого элемента списке
  9. Сортировка HTML по CSS-селектору
  10. Переопределение метода __floordiv__
  11. Декораторы с @wraps
  12. Сортировка HTML-элементов
  13. Сложные типы данных в Python
  14. Python: отсутствие точек с запятыми
  15. Декоратор Property в Python
  16. Сортировка с помощью параметра key
  17. Декораторы в Python
  18. Установка и использование библиотеки google
  19. Многострочные комментарии в Python
  20. Подсчет элементов в Python
  21. Извлечение аудио из видео
  22. Атрибуты объекта в Python
  23. Параллельные вычисления в Python
  24. Удаление файлов и папок в Python
  25. Вычисление натурального логарифма в NumPy
  26. Распаковка аргументов в Python
  27. Измерение времени выполнения кода с использованием time
  28. Избегайте ошибку FileNotFoundError
  29. Работа с множествами в Python
  30. Непрерывная проверка в Python
  31. Декоратор Ajax required
  32. Оператор += в Python
  33. Определение наиболее частого элемента с помощью collections.Counter
  34. Python Тесты и Гайды
  35. Метод getitem для доступа к элементам последовательности
  36. Сравнение def и lambda в Python
  37. Глобальные переменные в Python
  38. Метод invert для побитового отрицания
  39. Функции any() и all() в Python
  40. Оптимизация памяти с slots
  41. Оценка точности модели
  42. Генераторы в Python
  43. Отладка утечек памяти в Python
  44. Исправление ошибки NameError
  45. Метод Self в Python
  46. Удаление элемента из списка
  47. Python и Юникод: работа с цифрами

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