Курс Python → Генераторы в Python

Генераторные функции (generator functions) — это мощный инструмент в Python, который позволяет создавать итераторы с помощью ключевого слова yield. Когда у вас есть необходимость обработать большой объем данных или выполнить сложные операции с элементами списка, генераторные функции становятся незаменимыми. Они позволяют удобно организовать фильтрацию и обработку элементов списка, не загружая память излишне.

Важным преимуществом использования генераторных функций является их эффективность. Поскольку генераторы работают по требованию (lazy evaluation), они не требуют хранения всех элементов списка в памяти одновременно. Вместо этого элементы обрабатываются по мере необходимости, что позволяет сэкономить ресурсы и улучшить производительность программы.

Для создания генераторной функции в Python необходимо использовать ключевое слово yield. Это ключевое слово позволяет вернуть значение из функции, приостановить ее выполнение и сохранить текущее состояние. При каждом вызове генераторной функции она продолжает выполнение с того места, где была приостановлена, что делает ее итератором.


def my_generator():
    for i in range(5):
        yield i

gen = my_generator()
for item in gen:
    print(item)

В приведенном примере мы создаем генераторную функцию my_generator(), которая возвращает числа от 0 до 4 при каждом вызове. Затем мы создаем объект-генератор и итерируемся по нему, выводя каждый элемент на экран. Таким образом, мы можем эффективно обрабатывать большие объемы данных, не загружая память и повышая производительность программы.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Работа с Colorama
  2. Преобразование данных в Python
  3. Непрерывная проверка в Python
  4. Поиск простых чисел
  5. Перетасовка списков в Python
  6. Конвертация текстовых чисел с помощью Numerizer
  7. Генераторы в Python
  8. Функция zip() в Python
  9. Названия столбцов в Python таблицах
  10. Профилирование с cProfile
  11. Модуль math: основные функции
  12. Ввод нескольких значений
  13. Контекстный менеджер в Python
  14. Объединение словарей в Python
  15. Генерация тестовых данных с factory_boy
  16. Методы __repr__ и __str__ в Python
  17. Работа с WindowsPath()
  18. Основные операции с Numpy
  19. Python: динамическая типизация и проверка типов
  20. Перебор элементов списка в Python
  21. enumerate() в Python для работы с индексами
  22. Подсчет элементов с помощью Counter из collections
  23. Метод pos в Python
  24. Запрос пароля с помощью getpass
  25. Управление экспортом элементов
  26. Управление браузером с Selenium
  27. Просмотр внешних файлов в %pycat
  28. Отрицательные индексы списков
  29. Новшества Flask 2.0
  30. Python Метод sleep() из time
  31. Автоматизация с Python
  32. Склеивание строк без циклов
  33. Псевдонимы в Python
  34. Фильтрация входных данных в Python
  35. Расчет времени выполнения программы
  36. Извлечение новостей с newspaper3k
  37. Правила именования переменных
  38. Создание Radio кнопок в tkinter
  39. Python defaultdict добавление ключа
  40. Сериализация объектов в Python
  41. Функция с **kwargs в Python
  42. Создание новых функций через partial

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