Курс 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
- Создание вложенного генератора
- Метод __complex__ в Python
- Оператор деления для класса Rational
- Создание таблиц в терминале с PrettyTable
- Итерация по итерируемым объектам
- Измерение времени выполнения кода
- Работа со строками в Python
- Управление виртуальными окружениями в Python
- Big O оптимизация
- Python: изменяемые и неизменяемые коллекции
- Создание тестовых данных с Faker
- Форматирование строк в Python
- Сохранение и загрузка модели в PyTorch
- Форматирование объектов с модулем pprint
- Умножение строк и списков
- Метод index() в Python
- Многострочные комментарии в Python
- Методы работы со списками
- Инициализация переменных
- Сравнение строк в Python
- %pinfo: получение информации об объекте
- Порядок операций в Python
- Асинхронное программирование с asyncio
- Принципы Zen Python
- Инвертирование словаря
- Каналы Senior: Python, Java, Frontend, SQL, C++
- Проверка класса объекта
- Присоединение элементов коллекции
- Тестирование с unittest
- Создание пользовательской коллекции в Python
- Проверка окончания строки с помощью str.endswith()
- Псевдонимы в Python
- Создание словарей в Python
- Транспонирование 2D-массива с помощью zip
- Создание файла с проверкой ошибки
- Бесконечная проверка в Python
- Использование html-скриптов в Jupyter Notebook
- Объединение списков в Python.
- Преобразование данных в Python
- Создание копии итератора
- Комментарии в Python
- Анализ текста на русском языке с помощью Pymystem3
- Метод __ixor__ для побитового исключающего ИЛИ
- Создание копии списка в Python
- Проверка наличия элемента в списке
- Гибкие функции Python















