Курс 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"
- Использование модуля math
- Протокол управления контекстом
- Управление контекстом выполнения
- Метод join для объединения строк
- Список переменных в Python
- Объединение коллекций в Python
- Подсчет элементов с помощью Counter
- Сортировка слиянием
- Блок else в Python
- Копирование в Python
- Расширение операции побитового «и» в Python
- Оператор in для проверки наличия элемента
- Метод ne для сравнения объектов
- Непрерывная проверка в Python
- Возведение в квадрат с помощью itertools
- Извлечение чисел из текста
- Поиск наиболее частого элемента
- Метод get() в Python
- Подсчет элементов в Python
- Избегайте двойного подчеркивания
- Подсчет элементов в Python
- Удаление файлов в Python
- Абстракции словарей и множеств в Python
- Тернарный оператор в Python
- Проблема сравнения словарей
- Компиляция регулярных выражений
- Генераторы данных
- Конструктор в Python
- Подчеркивание в REPL
- Методы обработки строк в Python
- Работа с исключениями в Python
- Работа с дробями в Python
- Определение наиболее частого элемента с помощью collections.Counter
- Функция eval() в Python
- Хеши в Python
- Операторы увеличения и уменьшения переменной
- Работа со списками
- Конвертация изображений в PDF
- Расчет времени выполнения
- Использование type hints
- Удаление элементов из списка
- Измерение потребления памяти при сортировке
- Группировка элементов Python
- Проверка условий: all и any
- Декораторы в Python
- Ключевое слово global в Python
- Переменные в Python
- Измерение времени выполнения кода















