Курс Python → Генераторы в Python
Генератор в Python представляет собой специальный тип итератора, который отличается от обычных итераторов тем, что использует ленивые вычисления. Это означает, что значения генерируются только в момент обращения к ним, а не заранее. Такой подход позволяет экономить память и улучшить производительность программы.
Классическая концепция генераторов в информатике была заимствована из языка Haskell и стала популярной во многих других языках программирования, включая Python. Основная идея генераторов заключается в том, что они следуют принципу «вызов-по-необходимости», то есть значения генерируются только при необходимости и не занимают лишнюю память.
Использование генераторов в Python позволяет создавать эффективные итерируемые объекты, которые обрабатывают данные по мере необходимости. Вместо того чтобы сразу вычислять и сохранять все значения, генератор «генерирует» их по мере выполнения итераций. Это особенно полезно при работе с большими объемами данных или при необходимости оптимизировать использование памяти.
def square_numbers(n):
for i in range(n):
yield i ** 2
# Пример использования генератора
numbers = square_numbers(5)
for num in numbers:
print(num)
В приведенном примере показано создание генератора, который генерирует квадраты чисел от 0 до n. При обращении к генератору значение не вычисляется заранее, а генерируется только при выполнении итерации. Это позволяет эффективно использовать память и улучшить производительность программы.
Другие уроки курса "Python"
- Философия Python
- Сравнение объектов в Python
- Символ подчеркивания в Python
- Официальный канал Python в Telegram
- Поток данных в Python
- Генераторы словарей и множеств
- Вычисление натурального логарифма в NumPy
- Импортирование в Python
- Удаление falsy-значений из списка с помощью filter
- Роль запятой в Python
- Генераторы списков
- Основы Python
- Сравнение def и lambda функций в Python
- Dict Comprehension в Python
- Операторы объединения в Python 3.9
- Создание словарей в Python
- Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
- Хеши в Python
- Управление импортом в Python
- Основы работы с os
- Оператор is в Python
- Правила именования переменных
- Удаление эмодзи с помощью pandas
- Оператор assert в Python
- Функции map() и reduce() в Python
- Просмотр файла в Jupyter Noteboo
- Разделение функций на этапы
- Метод rpow в Python
- Работа с enumerate()
- Применение функции map() в Python
- Python Enumerate
- Оптимизация интернирования строк
- Переименование файлов в Python
- Метод setdefault() в Python
- Декоратор total_ordering для сравнения объектов
- Работа с переменными в Python
- Проблема сравнения словарей
- Класс UserDict: дополнительная функциональность
- Применение функции map() с лямбда-функциями
- Фильтрация входных данных в Python
- Обход словаря в Python
- Работа с getopt
- Метод rename() для переименования файлов и каталогов
- Работа с изображениями PIL
- Тестирование функции сложения
- Библиотека wikipedia для Python
- Список и кортеж в Python















