Курс 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"
- Numpy: использование Ellipsis
- Функция sleep() в Python
- Основы слова
- Игра «Угадывание чисел»
- Сравнение неупорядоченных списков
- Python union() функция — объединение множеств
- Pretty-printing JSON в Python
- Создание словарей в Python
- Генераторы списков
- Перегрузка операторов в Python
- Область видимости переменных
- Генератор чисел Фибоначчи
- Модуль os в Python: работа с файлами
- Создание итерируемых объектов
- Разрешение имен в Python
- Правила именования переменных
- Оператор in и not in в Python
- Установка и использование howdoi
- Цикл while в Python
- Лямбда-функции для min/max
- Частичное применение функций в Python
- Python enumerate() функции
- Эффективная конкатенация строк в Python
- Копирование в Python
- Сортировка HTML по CSS-селектору
- Применение функции map() в Python
- Замыкания в Python
- Работа с эмодзи в Python
- Измерение времени выполнения кода
- Метод hash в Python
- Метод ne для сравнения объектов
- Переопределение метода __or__()
- Вычисление времени выполнения
- Оператор in в Python
- Форматирование строк в Python
- Метод get для словарей
- Управление импортом в Python
- Функция print() — вывод информации
- Регулярные выражения в Python
- Разделение строки на подстроки в Python
- Расширение операции побитового «и» в Python
- Оптимизация создания строк
- Просмотр внешних файлов в %pycat
- Работа с collections в Python
- Использование двоеточия в Python















