Курс 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
- Defaultdict в Python
- Извлечение аудио из видео
- Работа с часовыми поясами в Python.
- Измерение времени выполнения
- Замена элементов в списке с помощью генераторов списков
- Lambda Functions in Python
- Удаление ключей из словаря
- Магические методы в Python
- Методы работы со списками
- Применение функции к списку
- Получение списка кортежей из словаря
- Создание новой даты в Python
- Хранение данных с помощью dataclasses
- Разделение строки с помощью split()
- Генераторы в Python
- Форматирование строк в Python
- Приближение чисел в Python
- Использование super() в Python
- Установка и использование модуля «howdoi»
- Основы Python за 14 дней
- Цикл while в Python
- f-строки в формате строк
- Основные методы NumPy
- Поиск индекса элемента
- Установка Home Assistant
- Метод get() в Python
- Проверка типа данных
- Многоточие в Python
- Создание генераторов в Python
- Подсказки при вводе данных в Python
- Навыки Python: строки, типы данных
- Функция __init__ в Python
- Декораторы в Python
- Логирование с Logzero
- Модуль inspect: получение информации о объектах
- Комментарии в Python
- Уникальные значения из списка
- Работа со списками
- Лямбда-функции в Python
- Конвертация коллекций в Python.
- Списки: объединение, изменение
- Сравнение объектов в Python
- Работа с комплексными числами в Python
- Форматирование заголовков в Python
- Определение основы слова с showballstemmer















