Курс 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"
- Загрузка постов Instagram
- Многострочные строки в Python
- Работа с модулем glob в Python
- Функции map() и reduce() в Python
- Solidity для DeFi Ethereum
- Генераторные функции в Python
- Python: отсутствие точек с запятыми
- Иерархия классов в Python
- Срез в Python
- Исправление ошибки NameError
- Переопределение унарных операторов
- Автоматизация с Python
- Обработка исключений в Python
- Аргумент по умолчанию
- Оператор умножения для вектора
- Атрибуты класса и экземпляра
- Импортирование в Python
- Создание виртуальной среды
- Переопределение метода __pow__
- Возврат значений из генератора
- Подсчет количества элементов в списке
- Считывание бинарного файла в Python
- Генерация QR-кодов с Python
- Разделение строки в Python
- Функции в Python
- Создание .exe файла с pyinstaller
- Работа с модулем cmath
- Ускорение кода с помощью векторизации
- Класс-оболочка для словарей
- Вложенные генераторы в Python
- Pretty-printing JSON в Python
- Виртуальные среды в Python
- Bootle — простой веб-фреймворк
- Работа с географическими данными.
- Печать календаря в Python
- Частичное совпадение пользовательского ввода в Python 3.10
- Операции со строками в Python
- Проблема сравнения словарей
- Проверка типа данных
- Строковое представление объектов
- Объединение строк с помощью метода join
- Тестирование функции сложения
- Блок else в циклах.
- Метод Event.wait() в Python
- JMESPath в Python















