Курс 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"
- Beautiful Soup — извлечение данных из HTML
- Настройка вывода в Numpy
- Управление асинхронными задачами с помощью Semaphore
- Использование defaultdict в Python
- Переопределение метода __pow__
- Форматирование строк в Python
- Именованные аргументы в Python
- Замыкания в Python
- Логирование с Loguru
- Принципы Zen of Python
- Декораторы в Python
- Очистка списка от False, None, 0, «»
- Операции с массивами в NumPy
- Нахождение отличий в списках
- Аннотации типов в Python
- Магические методы в Python
- Преобразование списка в словарь через генератор
- Подсчет частотности элементов в Python
- Очистка данных в Python
- Метод enumerate() в Python
- Установка библиотек в Python
- Взаимодействие с внешними процессами в Python
- Виртуальные среды в Python
- Метод get для словаря
- Форматирование строк с помощью f-строк
- Работа с Path в Python
- Библиотека Emoji: использование смайлов в Python
- Обработка элементов в Python
- Обновление ключей в Python
- Работа с OpenCV
- Создание списка через цикл
- Solidity для DeFi Ethereum
- Группы исключений в Python
- Оператор @ для умножения матриц
- Измерение времени выполнения кода
- Библиотека itertools: объединение списков
- Функции range() в Python
- Генератор списка в Python
- Создание словарей с defaultdict
- Метод split() для разделения строк
- Progress с библиотекой tqdm
- Разрешение имен в Python
- Преобразование символов с помощью map















