Курс 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 Метод del.
  3. Конкатенация строк в Python
  4. Обновление данных через PUT запрос
  5. Переопределение метода xor в Python
  6. Работа с *args и **kwargs в Python
  7. Принципы программирования
  8. Метод округления чисел
  9. Установка и использование pyshorteners
  10. Преобразование строк в числа с плавающей запятой
  11. Очистка строки в Python
  12. Множественное присваивание в Python
  13. Установка и использование Virtualenv
  14. Открытие и редактирование скриптов Python
  15. Функция count() в Python
  16. Обработка исключений в Python
  17. Печать календаря
  18. Просмотр атрибутов и методов класса
  19. Измерение времени выполнения
  20. Различия символов в Python
  21. Извлечение аудио из видео
  22. Список и кортеж в Python
  23. Измерение времени выполнения кода с использованием time
  24. Метод repr() в Python
  25. Методы split() и join() — Python строк.
  26. ROT13 Шифр Цезаря в Python
  27. Псевдонимы в Python
  28. Оператор += для объединения строк
  29. Показ всплывающих окон Tkinter
  30. Lambda Functions in Python
  31. Работа с YAML в Python
  32. Условные выражения в Python
  33. Функции all и any в Python
  34. Работа с кортежами в Python
  35. *args и **kwargs в Python
  36. Метод rename() для переименования файлов и каталогов
  37. Метод rsub для пользовательских чисел
  38. Сравнение строк в Python
  39. Удаление ключа из словаря
  40. Оператор «is not» в Python
  41. Работа с путями в Python
  42. Методы в Python
  43. Конвертация текстовых чисел с помощью Numerizer
  44. Создание списков в Python
  45. Python: цикл for и оператор присваивания
  46. Python-dateutil — работа с датами
  47. kwargs в Python
  48. Метод get() для словарей

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