Курс 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"
- Участие в сообществе @selectel
- Использование двоеточия в Python
- Группировка элементов Python
- Вакансии в Nebius
- Названия переменных
- Сокращение ссылок с pyshorteners
- Работа с байтовыми строками в Python
- Парсинг статей с Newspaper3k
- Изменение IP-адреса в Python
- Работа с JSON в Python
- Генерация чисел с range()
- Python reversed() функция
- Асинхронное программирование с asyncio
- Лямбда-функции в Python
- Объединение итераторов
- Создание словарей с defaultdict()
- Создание множества в Python
- Сортировка HTML по CSS-селектору
- Навыки Python: строки, типы данных
- Отслеживание прогресса с tqdm
- Объединение словарей в Python
- Справка по импортированным модулям
- Метод split() в Python
- Повторение элементов в Python
- Магические методы в Python
- Работа с множествами в Python
- Преобразование строки в число
- Оператор += для объединения строк
- Нахождение самого длинного слова в списке с помощью max
- Класс Counter() для подсчета элементов
- Метод join() для объединения элементов в строку.
- Работа с временем в Python
- Структура строк в Python
- Генерация фальшивых данных с Faker
- Обработка ошибок ввода данных
- Метод pos в Python
- Howdoi — получение ответов из терминала
- Введение в Python
- Измерение времени выполнения в Python
- Преобразование числа в восьмеричную строку
- Поиск простых чисел
- Расчет времени выполнения
- Логические операторы в Python
- Разделение функций на этапы
- Отслеживание выполнения программы с библиотекой tqdm
- Метод repr() в Python
- Построение графиков в Matplotlib
- Работа с кортежами в Python















