Курс 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 3.9
- Методы в Python
- Установка и использование Virtualenv
- Отладка в командной строке
- Перемещение и удаление файлов в Python
- Разрешение имен в Python
- Блок else в циклах.
- Настройка логгера Logzero
- Оператор «is not» в Python
- Метод count() для списка
- Передача аргументов в Python
- Создание таблиц в терминале с PrettyTable
- Проверка индексов коллекции
- Метод join() для объединения элементов
- Лямбда-функции для min/max
- Использование обратной косой черты в f-строках
- Получение текущей директории
- Преобразование регистра символов
- Управление сессиями в Python
- Оператор walrus в Python
- Функция format() в Python
- Работа с deque в Python
- Перевернуть список в Python
- Управление IP-адресами через прокси
- Расчет времени выполнения кода
- Экспорт внешнего файла с помощью writefile
- Проверка существования переменной с оператором :=
- Управление контекстом выполнения
- Работа с itertools
- Метод __float__ в Python
- Python groupby() из itertools: работа с повторяющимися элементами
- Транспонирование 2D-массива с помощью zip
- Создание новых списков в Python
- Сортировка и обратный порядок
- Управление браузером с Selenium
- Переименование файлов в Python
- Компиляция регулярных выражений
- Генерация случайных чисел Python
- Избегайте ошибку FileNotFoundError
- Генераторы в Python
- Асинхронное выполнение задач в Python
- Преобразование регистра строк
- Блок try-except-else
- Определение индекса элемента списка
- Структуры данных в Python















