Курс 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"
- Настройка логгера Logzero
- Атрибуты массивов в Numpy
- Удаление элементов во время итерации
- Преобразование документов в PDF с помощью Spire.Office
- TypedDict для kwargs в Python 3.12
- Проверка однородности элементов списка
- Деление в Python
- Функция product() в Python
- Магические методы в Python
- Управление контекстом выполнения
- Управление виртуальными средами в Python
- Функция reduce() в Python
- Работа с URL-адресами в Python
- Подсчет часто встречающихся элементов
- Проверка на истинность объектов в Python
- Регулярные выражения: метод match
- Переопределение метода delitem в Python
- Хранение переменных в словаре.
- Работа с кортежами в Python
- Моржовый оператор в Python 3.8
- Работа с парами ключ-значение
- globals и locals
- Многострочные комментарии в Python
- Управление импортом в Python
- Извлечение аудио из видео
- Создание новой даты в Python
- Генерация резюме в Gensim
- Возврат значений из генератора
- Python defaultdict добавление ключа
- Функция count() в Python
- Удаление элемента из списка в Python
- Создание генераторов
- Функции с необязательными аргументами
- Метод join() для объединения строк
- Создание вкладок с TKinter
- Создание новых списков в Python
- Обработка исключений в Python
- Группы исключений в Python
- Скачать видео с YouTube
- Обход элементов в Python
- Печать списка с помощью метода join
- Декоратор для группы пользователей в Django
- Отправка HTTP-запросов в Python
- Игра «Камень, ножницы, бумага» — Python
- Создание виртуальной среды
- Фильтры Pillow: NEAREST, BILINEAR, BICUBIC















