Курс 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
- Работа с рекламными данными в Pandas
- Работа с deque из collections
- Функция zip() в Python
- Удаление ресурса в Python
- Работа с модулем random
- Применение команды break
- Оптимизация памяти с помощью __slots__
- Управление экспортом элементов
- Запуск асинхронной корутины
- Декоратор total_ordering для класса Point
- Операции с числами в Python
- Создание лямбда-функций
- Создание объекта времени
- Кортеж в Python: создание и использование
- Генераторы списков
- Фильтрация элементов с помощью islice
- Подсчет элементов в Python
- Проверка элемента в множестве.
- Метод Self в Python
- Модуль sys: основы
- Проверка подстроки в строке с помощью in
- Создание коллекций из генератора
- Поиск индекса элемента в списке
- Итераторы в Python
- Обработка StopIteration в Python
- Работа с кортежами в Python
- Создание итератора
- Сравнение неупорядоченных списков
- Улучшенные подсказки для импорта в Python 3.12
- Библиотека wikipedia для Python
- Функции в одну строку
- Удаление ключей из словаря
- Основы Python
- Игра «Виселица» на Python
- Работа с файлами в Python
- Визуализация пропусков данных
- Переопределение метода __eq__
- Оператор @ для умножения матриц
- Использование эмодзи в Python
- Работа с SQLite в Python
- Переменные в Python: сокращение гласных
- Создание и операции с дробями
- Структурирование именованных констант
- TypedDict для kwargs в Python 3.12















