Курс 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"
- Преобразование типов данных в set comprehension
- Переопределение метода __rshift__
- Открытие, чтение и закрытие файла
- Поиск HTML-элементов с BeautifulSoup
- Подписка на SelectelNews в Twitter
- Множественное присваивание в Python
- Ускорение выполнения кода в Python
- Работа с файлами в Python
- Отладка регулярных выражений в Python
- Декораторы с аргументами
- Параллельные вычисления в Python
- Установка и использование pyshorteners
- Управление импортом в Python
- Распаковка значений в Python
- Преобразование в float
- Переменные в Python
- Анализ кода — Python
- Работа с Enum в Python3.
- Область видимости переменных
- Сортировка в Python
- Хранение данных
- Enum в Python
- Обработка аргументов Python
- Условные выражения в Python
- Удаление пробелов методом translate()
- Рекурсия для обращения строки
- Установка random seed в Python
- Переопределение метода __or__()
- Декораторы в Python
- Настройка нарезки списков
- Использование подчеркивания в REPL
- Поиск индекса элемента
- Бинарный поиск
- Профилирование с cProfile
- Объединение списков с использованием itertools.chain
- Форматирование строк в Python
- Шаблоны Flask: условия и циклы
- Оператор break в Python
- Работа с *args и **kwargs в Python
- Создание вкладок с TKinter
- Поиск индексов подстроки
- Оператор «моржа» (Walrus Operator)















