Курс 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
- Сложные типы данных в Python
- Обработка аргументов Python
- Моржовый оператор в Python 3.8
- Подписка на SelectelNews в Twitter
- Возвращение нескольких значений через кортеж или класс
- Удаление дубликатов из списка с помощью dict.fromkeys
- Big O оптимизация
- Просмотр файла в Jupyter Noteboo
- Оператор match в Python
- Обновление и получение данных в SQLite
- Объединение словарей в Python
- Искажение имен в Python
- Метод split() в Python
- Копирование и вставка текста в Python
- Метод classmethod
- Метод pos в Python
- Логирование с Logzero
- Создание спинбокса в tkinter
- Enum в Python
- Атрибуты объекта в Python
- Создание файла с проверкой ошибки
- Переопределение метода sub
- Имена объектов в Python
- Печать календаря
- Объединение списков в Python
- Справка по импортированным модулям
- Удаление ресурса в Python
- Сумма элементов списка
- Установка и использование pyshorteners
- Хранение переменных в словаре.
- Создание словарей и множеств в Python
- Фильтрация последовательности
- Создание списков в Python
- Работа с Telegram API на Python
- Получение текущей даты и времени
- JSON-esque в Python
- Множественное назначение в Python
- Фильтрация списков с itertools
- Обработка ошибок в Python
- Обновление шаблона base.html
- Декораторы классов















