Курс 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"
- Логирование в Python
- Наиболее частотные элементы с помощью Counter
- Работа с JSON данными в Python
- Введение в Python
- Оператор деления для класса Rational
- Глубокое копирование объектов
- Хеширование паролей с солью
- Работа с временем в Python
- Работа с многоуровневыми словарями в Python
- Создание Radio кнопок в tkinter
- Принцип одной функции
- Работа с коллекциями Python
- Операторы увеличения и уменьшения переменной
- Генераторы данных
- Создание панели меню Tkinter
- Генераторы в Python
- Создание новых списков в Python
- Карта бомбоубежищ в Москве и Питере
- Перезапуск ячейки в Jupyter Notebook с dostoevsky
- Метод remove() для удаления элемента из списка
- Цепные операции в Python
- Использование эмодзи в Python
- Работа с модулем bisect
- Функции range() в Python
- Оператор распаковки в Python
- Декораторы в Python
- Оптимизация интернирования строк
- Проблема сравнения словарей
- Python Ellipsis использование
- Создание инструмента обнаружения плагиата
- Работа с URL-адресами в Python
- Основные операции с библиотекой Numpy
- Установка и использование Logzero
- Курсы Яндекс Практикум
- Работа с множествами в Python
- Сортировка в Python
- Создание итерируемых объектов
- Генераторы в Python
- Именованные срезы в Python
- Форматирование строк в Python
- Генератор чисел Фибоначчи
- Оптимизация памяти с slots
- Работа с файлами в Python
- Обработка ошибок в JSON данных
- Возврат нескольких значений
- Получение имени функции с помощью inspect















