Курс 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"
- Обмен данными с asyncio.Queue
- Метод __getitem__ в Python
- Установка и использование TensorFlow
- Правила именования переменных
- Создание класса в Python
- Операции с датами в Python
- Форматирование строк с помощью f-строк
- Исключение NotImplementedError
- Экспорт данных в файл.
- Работа с изображениями Pillow
- Управление экспортом элементов
- Переворот списка в Python
- Получение идентификатора объекта в памяти
- Поиск наиболее частого элемента списке
- Управление User-Agent в Python
- Проверка вхождения подстроки
- Объединение списков в Python
- Декораторы в Python
- Оператор морж в Python 3.8
- Создание таблиц в терминале с PrettyTable
- Класс-оболочка для словарей
- Оператор деления для класса Rational
- Замена переменных в Python
- Удаление URL-адресов в Python
- Python и Монти Пайтон
- Установка и использование Logzero
- Порядок операций в Python
- Аргумент по умолчанию
- Работа с NumPy
- Форматирование строк в Python
- Получение имени функции с помощью inspect
- Возвращение нескольких значений
- Введение в Python
- Использование super() в Python
- Импорт и использование модулей в Python
- Оператор += в Python
- Блок else в циклах Python
- Структура данных deque в Python
- Сравнение def и lambda функций в Python
- Упрощение условных выражений с тернарным оператором
- Сравнение def и lambda-функций
- Оператор += для объединения строк
- Основы слова
- Генераторные выражения и islice.
- Python Метод Union Множеств















