Курс 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
- Работа с NumPy
- Поиск всех индексов подстроки
- Библиотека funcy: удобные утилиты
- Срез списка в Python
- Форматирование строк в Python
- Оптимизация методов в Python 3.7
- Python UserString — создание подклассов строк
- Метод rsub для пользовательских чисел
- Управление сессиями в Python
- Библиотека schedule: планировщик задач
- Перезапуск ячейки в Jupyter Notebook с dostoevsky
- Руководство по использованию Colorama
- Проверка памяти объекта
- Счетчик ссылок в Python
- Сглаживание списка
- Тестирование модели в PyTorch
- Python: отсутствие точек с запятыми
- Оптимизация параметров в Python
- Любовь к Python
- Возврат значений из генератора
- Определение размера папок в Python
- Создание итерируемых объектов
- Передача параметров в Python
- Работа с deque в Python
- Оператор «or» в Python
- Абстракции словарей и множеств в Python
- Удаление URL-адресов в Python
- Определение наиболее частого элемента с помощью collections.Counter
- Преобразование документов в PDF с помощью Spire.Office
- Методы в Python
- Метод split() для разделения строк
- Операторы += в Python
- Логирование с Loguru
- Ограничение ресурсов в Python
- lru_cache оптимизация функций
- Получение ID процесса
- Метод count() для списка
- Создание графики с черепахой
- Сериализация данных в JSON с помощью json.dumps
- Python и Юникод: работа с цифрами
- Генераторы в Python
- Метод __ilshift__ для битового сдвига влево
- Показ всплывающих окон Tkinter
- Генерация UUID в Python
- Простой калькулятор Python
- Оператор Walrus в Python
- Удаление элемента из списка в Python















