Курс 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
- Функция zip() в Python
- Возврат нескольких значений
- Сравнение строк в Python
- Генераторы данных
- Слияние словарей в Python 3.9
- Проверка подстроки в строке
- Циклы в Python
- Объединение списков в строку
- Метод __call__ в Python
- Принципы LSP и ISP в Python
- Работа с OpenCV
- Работа с NumPy массивами
- Отделение звука от видео
- Операторы сравнения в Python
- Переопределение метода divmod
- Сортировка элементов в Python
- Сравнение объектов в Python
- Lambda-функция в Python: использование с map() и sum()
- Измерение времени выполнения кода
- Изменение списка срезом
- Перегрузка операторов в Python
- Методы classmethod и staticmethod
- Обновление и получение данных в SQLite
- Методы в Python
- Секреты Python
- Принципы Zen of Python
- Склеивание строк без циклов
- Отслеживание выполнения программы с библиотекой tqdm
- Использование функции enumerate()
- GitHub в Telegram: подписка на уведомления
- Разделение строки с помощью re.split()
- Работа с типами данных в Python с помощью pydantic.
- Работа с *args и **kwargs в Python
- Многопоточность в Python
- Работа с enumerate()
- Метод __int__ в Python
- JSON в Python: модуль, dump, dumps, load
- Удаление элементов из списка в Python
- Оператор continue в Python
- JMESPath в Python
- Декораторы в Python
- Управление виртуальными средами в Python
- Метод join для наборов















