Курс 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 groupby() из itertools: работа с повторяющимися элементами
- Экспорт данных с помощью writefile
- Счетчик ссылок в Python
- Переопределение унарных операторов
- Извлечение статей с newspaper3k
- Округление дробей в Python
- Оператор умножения для вектора
- Подсказки типов в Python
- Удаление элементов из списка в Python
- Проекты на Python
- Обработка исключений в Python
- Оператор in для Python
- Работа с контекстными менеджерами
- Работа с срезами в Numpy
- Хеши в Python
- Создание графиков в терминале
- Глобальные переменные в Python
- Преобразование строки в число
- Управление User-Agent в Python
- Обмен данными с asyncio.Queue
- Генераторы в Python
- Нарезка списков в Python
- Создание и инициализация объектов
- Проверка типов с использованием isinstance
- Управление фоновыми задачами в Python
- Numpy: использование Ellipsis
- PEP-401: оператор
- Форматирование строк с f-строками
- Участие в сообществе @selectel
- Декоратор Ajax required
- Сортировка элементов с OrderedDict
- Логирование с Logzero
- Pretty-printing JSON в Python
- Подсчет часто встречающихся элементов
- Проблемы с именами переменных
- Вызов функций по строке в Python.
- Отправка POST запроса на сервер.
- Удаление элемента по индексу
- Основные операции с Numpy
- Магические методы в Python
- Удаление символа из строки
- Оптимизация памяти с __slots__
- Сравнение строк в Python
- Функция divmod() в Python
- Строки в Python: апострофы и кавычки















