Курс 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. Загрузка постов Instagram
  2. Многострочные строки в Python
  3. Работа с модулем glob в Python
  4. Функции map() и reduce() в Python
  5. Solidity для DeFi Ethereum
  6. Генераторные функции в Python
  7. Python: отсутствие точек с запятыми
  8. Иерархия классов в Python
  9. Срез в Python
  10. Исправление ошибки NameError
  11. Переопределение унарных операторов
  12. Автоматизация с Python
  13. Обработка исключений в Python
  14. Аргумент по умолчанию
  15. Оператор умножения для вектора
  16. Атрибуты класса и экземпляра
  17. Импортирование в Python
  18. Создание виртуальной среды
  19. Переопределение метода __pow__
  20. Возврат значений из генератора
  21. Подсчет количества элементов в списке
  22. Считывание бинарного файла в Python
  23. Генерация QR-кодов с Python
  24. Разделение строки в Python
  25. Функции в Python
  26. Создание .exe файла с pyinstaller
  27. Работа с модулем cmath
  28. Ускорение кода с помощью векторизации
  29. Класс-оболочка для словарей
  30. Вложенные генераторы в Python
  31. Pretty-printing JSON в Python
  32. Виртуальные среды в Python
  33. Bootle — простой веб-фреймворк
  34. Работа с географическими данными.
  35. Печать календаря в Python
  36. Частичное совпадение пользовательского ввода в Python 3.10
  37. Операции со строками в Python
  38. Проблема сравнения словарей
  39. Проверка типа данных
  40. Строковое представление объектов
  41. Объединение строк с помощью метода join
  42. Тестирование функции сложения
  43. Блок else в циклах.
  44. Метод Event.wait() в Python
  45. JMESPath в Python

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