Курс 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"
- Функция enumerate() в Python
- Измерение времени выполнения в Python
- Добавление вложенных списков
- Проверка типов с использованием isinstance
- Обратный список чисел
- Управление фоновыми задачами в Python
- Возврат нескольких значений
- Декораторы в Python
- Выключение компьютера с помощью Python
- Асинхронное программирование с asyncio
- Метод hash в Python
- Любовь к Python
- Метод __ilshift__ для битового сдвига влево
- Отношения подклассов в Python
- Счетчик ссылок в Python
- Динамические маршруты во Flask
- Генерация QR-кодов с библиотекой qrcode
- Модуль subprocess: запуск внешних команд
- Многострочные комментарии в Python
- Создание множества в Python
- Определение основы слова с showballstemmer
- Проверка ввода с помощью isdigit
- Анализ кода — Python
- Python 3.12: переиспользование кавычек
- Подсчет элементов с помощью Counter
- Нан-рефлексивность в Python
- Хранение данных
- Именование переменных в Python
- Метод __iand__ для пользовательских классов
- Метод matmul для умножения матриц
- Объявление переменных в Python
- Отладчик pdb: начало работы
- Удаление символа из строки
- Вывод баннеров
- Установка и использование howdoi
- Вывод символов строки в Python
- Аргумент по умолчанию
- Метод __int__ в Python
- Работа со строками в Python.
- Обезопасьте ввод данных
- Гибкие функции Python
- Подробная информация о %pinfo
- Оформление кода на Python
- Генераторы в Python
- Управление User-Agent в Python















