Курс 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"
- Просмотр файла в Jupyter Noteboo
- Явный импорт в Python
- Установка и использование Virtualenv
- Модуль os в Python: работа с файлами
- Мониторинг памяти с Pympler
- Работа с комплексными числами в Python
- Расчет времени выполнения кода
- TON Smart Challenge #2: участие и подготовка
- Сокращение ссылок с pyshorteners
- Модуль inspect
- Операции с матрицами в Python
- Обновление множества в Python
- Работа с часовыми поясами в Python.
- Инверсия списка/строки в Python
- Метод __irshift__ для побитового сдвига вправо
- Оценка выражений генератора в Python
- Исправление ошибки NameError
- Управление ресурсами с контекстными менеджерами
- Разделение строки в Python
- Хэш-функции и метод цепочек
- Работа с файлами в Python
- Обратное распространение ошибки
- Удаление специальных символов
- Python Тесты и Гайды
- Проблемы с именами переменных
- Оператор break в Python
- Очистка данных с помощью pandas
- Генераторы в Python
- Преобразование данных в Python
- Получение частей дроби
- Python Менеджер контекста
- Работа с кортежами в Python
- Декораторы в Python
- Управление памятью в Python
- Оператор zip в Python
- Управление асинхронными задачами на Python.
- Создание списков в Python
- Вставка переменных в шаблоны Flask
- Перемешивание списка с shuffle()
- Проверка надежности пароля на Python
- Поиск простых чисел
- Подсчет элементов в Python
- Инициализация переменных
- Преобразование в float
- Метод join() для объединения элементов
- Функция map() и ленивая оценка
- Генераторные функции в Python
- Определение объема памяти объекта















