Курс 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. Наиболее частотные элементы с помощью Counter
  3. Работа с JSON данными в Python
  4. Введение в Python
  5. Оператор деления для класса Rational
  6. Глубокое копирование объектов
  7. Хеширование паролей с солью
  8. Работа с временем в Python
  9. Работа с многоуровневыми словарями в Python
  10. Создание Radio кнопок в tkinter
  11. Принцип одной функции
  12. Работа с коллекциями Python
  13. Операторы увеличения и уменьшения переменной
  14. Генераторы данных
  15. Создание панели меню Tkinter
  16. Генераторы в Python
  17. Создание новых списков в Python
  18. Карта бомбоубежищ в Москве и Питере
  19. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  20. Метод remove() для удаления элемента из списка
  21. Цепные операции в Python
  22. Использование эмодзи в Python
  23. Работа с модулем bisect
  24. Функции range() в Python
  25. Оператор распаковки в Python
  26. Декораторы в Python
  27. Оптимизация интернирования строк
  28. Проблема сравнения словарей
  29. Python Ellipsis использование
  30. Создание инструмента обнаружения плагиата
  31. Работа с URL-адресами в Python
  32. Основные операции с библиотекой Numpy
  33. Установка и использование Logzero
  34. Курсы Яндекс Практикум
  35. Работа с множествами в Python
  36. Сортировка в Python
  37. Создание итерируемых объектов
  38. Генераторы в Python
  39. Именованные срезы в Python
  40. Форматирование строк в Python
  41. Генератор чисел Фибоначчи
  42. Оптимизация памяти с slots
  43. Работа с файлами в Python
  44. Обработка ошибок в JSON данных
  45. Возврат нескольких значений
  46. Получение имени функции с помощью inspect

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