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

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

Генераторы позволяют экономить память, так как они не хранят весь набор значений в памяти, а генерируют их по мере необходимости. Это особенно полезно, когда нужно обрабатывать большие объемы данных или когда набор значений бесконечен. Генераторы могут использоваться в циклах for для итерации по значениям, а также в выражениях генераторов и функциях map, filter.


# Пример генератора, возвращающего квадраты чисел
def squares(n):
    for i in range(n):
        yield i ** 2
        
# Использование генератора в цикле
for num in squares(5):
    print(num)

Важно помнить, что генераторы в Python являются итерируемыми объектами, поэтому после того как все значения были возвращены, генератор исчерпывается и вызов функции next() на нем вызовет исключение StopIteration. Также можно использовать цикл while и обработку исключения StopIteration для обхода всех значений генератора.

Генераторы позволяют упростить и оптимизировать код, делая его более читаемым и эффективным. Они являются важной частью функционального программирования в Python и могут быть использованы для создания более компактного и элегантного кода. Используйте генераторы там, где это возможно, для улучшения производительности и удобства вашего кода.

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

Автор урока

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

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

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

  1. Деление в Python
  2. Сложные типы данных в Python
  3. Обработка аргументов Python
  4. Моржовый оператор в Python 3.8
  5. Подписка на SelectelNews в Twitter
  6. Возвращение нескольких значений через кортеж или класс
  7. Удаление дубликатов из списка с помощью dict.fromkeys
  8. Big O оптимизация
  9. Просмотр файла в Jupyter Noteboo
  10. Оператор match в Python
  11. Обновление и получение данных в SQLite
  12. Объединение словарей в Python
  13. Искажение имен в Python
  14. Метод split() в Python
  15. Копирование и вставка текста в Python
  16. Метод classmethod
  17. Метод pos в Python
  18. Логирование с Logzero
  19. Создание спинбокса в tkinter
  20. Enum в Python
  21. Атрибуты объекта в Python
  22. Создание файла с проверкой ошибки
  23. Переопределение метода sub
  24. Имена объектов в Python
  25. Печать календаря
  26. Объединение списков в Python
  27. Справка по импортированным модулям
  28. Удаление ресурса в Python
  29. Сумма элементов списка
  30. Установка и использование pyshorteners
  31. Хранение переменных в словаре.
  32. Создание словарей и множеств в Python
  33. Фильтрация последовательности
  34. Создание списков в Python
  35. Работа с Telegram API на Python
  36. Получение текущей даты и времени
  37. JSON-esque в Python
  38. Множественное назначение в Python
  39. Фильтрация списков с itertools
  40. Обработка ошибок в Python
  41. Обновление шаблона base.html
  42. Декораторы классов

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