Курс 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
- Получение имени функции с помощью inspect
- Работа с Enum в Python3.
- Создание даты из строки ISO
- Именование переменных в Python
- Метод gt в Python
- Работа с WindowsPath()
- Принципы программирования
- Основы работы со строками в Python
- Форматирование вывода списков
- Создание класса очереди
- Работа со словарями Python
- Операторы присваивания в Python
- Перехват исключений в Python
- Удаление элемента по индексу в Python
- Методы обработки строк в Python
- Отправка HTTP-запросов в Python
- Списковый компрехеншен.
- Отношения подклассов в Python
- Работа с файлами в Python
- Поиск HTML-элементов с BeautifulSoup
- Работа с JSON данными в Python
- Множественное наследование в Python
- Вакансии в Nebius
- Метод ipow для возведения в степень
- Фильтрация списка от «ложных» значений
- Модуль itertools: комбинации и перестановки
- Форматирование строк в Python
- Оператор break в Python
- Присвоение значений переменным в Python
- Порядок и длина множеств в Python
- Переопределение метода __lshift__
- Парсинг статей с Newspaper3k
- Измерение времени выполнения кода
- Функция enumerate() в Python
- Игра «Камень, ножницы, бумага» — Python
- Методы и функции в Python
- Python: изменяемые и неизменяемые коллекции
- Получение списка кортежей из словаря
- Удаление элементов по срезу
- Библиотека wikipedia для Python
- Операции с матрицами в Python
- Codecademy в Telegram
- Методы __repr__ и __str__ в Python
- Профилирование кода
- Метод Enumerate() для списков
- Работа с контекст-менеджером «with»
- Работа с файлами в Python















