Курс 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
- Лямбда-функции для min/max
- Непрерывная проверка в Python
- Участие в LP стейкинге Waves
- Очистка списка от False, None, 0, «»
- Работа с файлами в Python
- Многострочные комментарии в Python
- Фильтрация списка чисел
- Работа с изображениями Pillow
- Генератор списка с условием if
- Циклы в Python
- Порядок операций в Python
- Удаление дубликатов из списка с помощью dict.fromkeys
- Python 3.12: переиспользование кавычек
- Метод radd для пользовательских чисел
- Скрытие вывода данных
- Установка Git и AWS CLI
- Группировка элементов в словарь
- Установка и использование Telegram API в Python
- Модуль math: константы π и e
- Python Метод sleep() из time
- Лямбда-функции в Python
- Работа с временем в Python
- Функции map() и reduce() в Python
- Инверсия списков и строк в Python
- Освобождение памяти в Python
- Нарезка списков в Python
- Вычисление разности множеств в Python
- Получение идентификатора объекта в памяти
- Тестирование функции сложения
- Объединение словарей в Python
- Игра «Угадывание чисел»
- Объединение строк с помощью метода join
- Управление ресурсами с контекстными менеджерами
- Делегирование в Python
- Удаление файлов в Python
- Измерение времени выполнения кода в Python
- Генератор чисел Фибоначчи
- Enum в Python
- Поиск уникальных элементов строкой в Python
- Подписка на @SelectelNews















