Курс 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"
- Lambda-функция в Python: использование с map() и sum()
- f-строки в формате строк
- Модуль functools в Python
- Библиотека funcy: удобные утилиты
- Выражения-генераторы в Python
- Атрибуты массивов в Numpy
- Работа с датой и временем в Python
- Установка и загрузка Instaloader
- Работа с itertools
- Лямбда-функции для min/max
- Управление виртуальными окружениями в Python
- Работа с датами в Python
- Обработка элементов в Python
- Инверсия списка и строки в Python
- Структура строк в Python
- PrettyTable: создание таблицы
- Работа с контекстными переменными
- Каналы Senior: Python, Java, Frontend, SQL, C++
- Аннотации типов в Python
- Сортировка с помощью параметра key
- Итерация по копии коллекции
- Основы Python
- Множественные конструкторы в Python
- Тест скорости набора текста на Python
- Структурирование именованных констант
- Транспонирование матрицы в Python
- Оптимизация гиперпараметров в Python
- Копирование списков в Python
- Регистрация на хакатоне
- Перевод текста с Python Translator
- Удаление символов новой строки в Python.
- Установка и использование Virtualenv
- Создание итератора
- Скачать видео с YouTube
- Класс UserDict: дополнительная функциональность
- Создание пользовательской коллекции в Python
- Избегайте изменяемых аргументов
- Установка Git и AWS CLI
- Резервирование символов в Python
- Срезы в Python
- Имена объектов в Python
- Работа с контекстным менеджером Pool
- Преобразование списка в словарь через генератор
- Автоматизация с Python
- Возврат нескольких значений из функции
- Строковое представление объектов
- Основные методы NumPy
- Метод Enumerate() для списков















