Курс 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
- Метод split() в Python
- Оператор in для проверки наличия элемента
- Возврат нескольких значений
- Переопределение унарных операторов
- Возвращение нескольких значений
- Разделение строки с помощью re.split()
- Работа с контекстными переменными
- Принцип одной функции
- Генерация резюме в Gensim
- Генераторы данных
- Капитализация строк
- Инверсия списков и строк в Python
- Профилирование с cProfile
- Установка и использование howdoi
- Распаковка элементов последовательности
- Резервирование символов в Python
- Вложенные генераторы в Python
- Названия столбцов в Python таблицах
- Работа с множествами в Python
- Перевод двоичного кода в целое число
- Работа с deque из collections
- Удаление элемента по индексу в Python
- Удаление ключей из словаря
- Метод add для класса Vector
- JMESPath в Python
- Переопределение метода
- Сортировка с помощью key
- Метод classmethod
- Импорт модулей в Python 3.12
- Блок else в циклах Python
- Генераторы в Python
- Определение размера папок в Python
- Метод eq для сравнения объектов
- Создание матрицы в Python
- Хешируемые ключи в Python
- Декораторы классов
- Установка максимального количества цифр
- Удаление символа из строки
- Извлечение новостей с помощью newspaper3k
- Разбиение текста в Python
- Python Поверхностное Копирование
- Документация функции help() в Python
- Улучшенные подсказки для импорта в Python 3.12
- Хэш-функции и метод цепочек















