Курс 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. Получение списка кортежей из словаря
  2. Выборка чисел
  3. Установка и обучение ChatterBot
  4. Руководство по Pymorphy2
  5. Работа с путями в Python
  6. Проверка версии Python
  7. Операции с массивами в NumPy
  8. Solidity для DeFi Ethereum
  9. Запуск асинхронной корутины
  10. Метод classmethod
  11. Блок else в циклах Python
  12. Удаление falsy-значений из списка с помощью filter
  13. Кортеж в Python: создание и использование
  14. Импорт классов из другого файла
  15. Копирование объектов в Python
  16. Вычисление натурального логарифма в NumPy
  17. Применение функций в Python
  18. Загрузка постов Instagram
  19. Переопределение метода xor в Python
  20. Реверс строки и списка в Python.
  21. Библиотека Emoji: использование смайлов в Python
  22. Протокол управления контекстом
  23. 9 уловок для чистого кода
  24. Обработка исключений в Python
  25. Сортировка HTML по CSS-селектору
  26. Функция print() — вывод информации
  27. Сортировка с параметром key
  28. Импорт модулей в Python 3.12
  29. Множественное присваивание в Python
  30. Управление фоновыми задачами в Python
  31. Особенности запятых в Python
  32. Хэш-функции и метод цепочек
  33. Счетчик ссылок в Python
  34. Форматирование чисел в Python
  35. Динамические маршруты во Flask
  36. Работа с YAML в Python: PyYAML.
  37. Отладка в командной строке
  38. Метод __imod__ для Python
  39. Использование метода lower()
  40. Преобразование чисел в Python
  41. Запуск внешнего кода в Jupyter
  42. Метод rmatmul для обратного матричного умножения
  43. Исправление ошибки NameError
  44. Создание треугольника Паскаля
  45. Объединение строк с помощью метода join
  46. Вычисление натуральных логарифмов в NumPy
  47. Подсчет элементов в Python

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