Курс 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. Просмотр файла в Jupyter Noteboo
  2. Явный импорт в Python
  3. Установка и использование Virtualenv
  4. Модуль os в Python: работа с файлами
  5. Мониторинг памяти с Pympler
  6. Работа с комплексными числами в Python
  7. Расчет времени выполнения кода
  8. TON Smart Challenge #2: участие и подготовка
  9. Сокращение ссылок с pyshorteners
  10. Модуль inspect
  11. Операции с матрицами в Python
  12. Обновление множества в Python
  13. Работа с часовыми поясами в Python.
  14. Инверсия списка/строки в Python
  15. Метод __irshift__ для побитового сдвига вправо
  16. Оценка выражений генератора в Python
  17. Исправление ошибки NameError
  18. Управление ресурсами с контекстными менеджерами
  19. Разделение строки в Python
  20. Хэш-функции и метод цепочек
  21. Работа с файлами в Python
  22. Обратное распространение ошибки
  23. Удаление специальных символов
  24. Python Тесты и Гайды
  25. Проблемы с именами переменных
  26. Оператор break в Python
  27. Очистка данных с помощью pandas
  28. Генераторы в Python
  29. Преобразование данных в Python
  30. Получение частей дроби
  31. Python Менеджер контекста
  32. Работа с кортежами в Python
  33. Декораторы в Python
  34. Управление памятью в Python
  35. Оператор zip в Python
  36. Управление асинхронными задачами на Python.
  37. Создание списков в Python
  38. Вставка переменных в шаблоны Flask
  39. Перемешивание списка с shuffle()
  40. Проверка надежности пароля на Python
  41. Поиск простых чисел
  42. Подсчет элементов в Python
  43. Инициализация переменных
  44. Преобразование в float
  45. Метод join() для объединения элементов
  46. Функция map() и ленивая оценка
  47. Генераторные функции в Python
  48. Определение объема памяти объекта

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