Курс 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"
- Библиотека Emoji: использование смайлов в Python
- Объединение списков в строку
- Декораторы в Python
- Анонимные функции Lambda
- Тестирование модели в PyTorch
- Разделение строки на подстроки в Python
- Функция zip() в Python
- Python Ellipsis использование
- Работа с очередями в Python
- Проектирование Singleton с метаклассом
- Оператор is в Python
- Проверка индексов коллекции
- Работа со стеком в Python
- Поиск файлов по шаблону
- Новшества Flask 2.0
- Обработка ошибок ввода данных
- Использование type hints
- Курсы Яндекс Практикум
- Переопределение метода xor в Python
- Библиотека Rich: форматирование текста
- Работа с словарями в Python
- Шаблоны и наследование в Flask
- Вычисление натуральных логарифмов в NumPy
- Конвертация изображений в PDF
- Метод ior для битовых операций
- Методы сравнения множеств
- Оболочка Python
- Создание файла с проверкой ошибки
- Правила именования переменных
- Модуль sys: основы
- Форматирование строк в Python
- Генераторы списков в Python
- Удаление эмодзи с помощью pandas
- Сравнение строк в Python
- Перегрузка операторов в Python
- Динамическая типизация в Python
- Аннотации типов в Python
- Операторы += в Python
- Реверс строки в Python
- Оператор Walrus в Python
- Автоматизация скриптов на AWS Lightsail.
- Сложные типы данных в Python
- Поиск наиболее частого элемента списке
- Простой калькулятор Python
- Работа с набором данных CIFAR10 в PyTorch
- Обработка исключений















