Курс 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 Поверхностное Копирование
- Оптимизация памяти с __slots__
- Синхронизация доступа к ресурсам
- Фильтрация элементов с помощью islice
- Работа с модулем glob в Python
- Область видимости переменных
- Использование type hints
- Установка виртуального окружения Python
- Мониторинг памяти с Pympler
- Запуск внешнего кода в Jupyter
- Сортировка элементов в Python
- Dict Comprehension в Python
- Переопределение метода __or__()
- Нахождение отличий в списках
- Поиск подстроки в строке
- Аннотации типов в Python
- Операции с датами в Python
- Распаковка аргументов в Python
- Создание и использование модулей в Python
- Работа с CSV файлами в Python
- Вычисление натуральных логарифмов в NumPy
- Python 3.12: Псевдонимы типов
- Python: Splat-оператор и splatty-splat
- Оператор * в Python
- Структуры данных в Python
- Метод matmul для умножения матриц
- Работа с байтовыми строками в Python
- Работа с комплексными числами в Python
- Пропуск строк в файле с itertools
- Конкатенация строк в Python
- Оператор «or» в Python
- Добавление кнопки в tkinter
- Метод join() для объединения строк
- Работа со строками в Python
- Динамические маршруты во Flask
- Работа с изображениями PIL
- Переворот списка в Python
- Создание итератора
- Метод __imod__ для Python















