Курс 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. Просмотр файла в Jupyter Noteboo
  2. Сортировка HTML-элементов
  3. Оператор «is not» в Python
  4. Очистка данных с помощью pandas
  5. Поиск анаграмм с Counter
  6. Работа с модулем cmath
  7. Многострочные строки в Python
  8. Извлечение данных из JSON
  9. Оптимизация методов в Python 3.7
  10. Создание объекта времени
  11. Импорт модулей и пакетов в Python
  12. Получение списка кортежей из словаря
  13. Генераторы в Python
  14. Разделение функций на этапы
  15. Проверка дубликатов в Python
  16. Безопасные SQL-запросы в Python 3.11
  17. Удаление элемента по индексу в Python
  18. Удаление URL-адресов в Python
  19. Модуль future Python
  20. Распаковка элементов последовательности
  21. Профилирование данных с Pandas
  22. Проверка типов с использованием isinstance
  23. Отладчик pdb: начало работы
  24. Библиотека sh: удобные команды терминала
  25. Удаление элементов из списка
  26. Работа с GitHub в Telegram
  27. Использование эмодзи в Python
  28. Работа с асинхронными задачами в Python
  29. Определение имен функций
  30. Оператор «or» в Python
  31. Проекты на Python
  32. Использование type hints
  33. Передача аргументов через **arguments
  34. Проверка надежности пароля на Python
  35. Объединение словарей в Python 3.5+
  36. Списковые включения в Python
  37. Обучение модели с указанием эпох
  38. Виртуальное окружение Python
  39. Генераторы по генератору
  40. Шаблоны и наследование в Flask
  41. Различия символов в Python
  42. Установка и использование модуля «howdoi»
  43. Аннотации типов в Python
  44. Разделение строки с помощью re.split()
  45. Использование html-скриптов в Jupyter Notebook
  46. Методы обработки строк в Python

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