Курс 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"
- globals и locals
- Извлечение новостей с помощью newspaper3k
- Хеширование паролей с использованием salt
- Оператор морж в Python 3.8
- Оператор zip в Python
- Установка максимального количества цифр
- Удаление дубликатов из списка с помощью dict.fromkeys
- Удаление элементов из списка в Python.
- Python 3.12: Псевдонимы типов
- Метод init в Python
- Инициализация структур данных
- Отрицательные индексы списков в Python
- Измерение времени выполнения кода в Python
- Python groupby() из itertools: работа с повторяющимися элементами
- Очистка списка от False, None, 0, «»
- Динамическая типизация в Python
- Работа с timedelta в Python
- Уникальные значения из списка
- Итераторы с потерямиZIP
- Удаление дубликатов из списка
- Исключение NotImplementedError
- Обработка исключений с блоком else
- Регистрация на хакатоне
- Проблема сравнения словарей
- Функция enumerate() — Python
- Библиотека Emoji: использование смайлов в Python
- Создание GUI на Tkinter
- Библиотека sh: использование команд bash в Python
- Вычисление фазы комплексного числа
- Обработка ошибок в Python
- Определение размера папок в Python
- Уникальность ключей в словаре
- Моржовый оператор в Python 3.8
- Бесконечная проверка в Python
- CLI-инструмент howdoi
- Форматирование данных с помощью pprint
- Получение списка кортежей из словаря
- Поиск с библиотекой Google
- Срезы в Python
- Метод __iand__ для пользовательских классов
- *args и **kwargs в Python
- Функции map, filter, reduce
- Метод setitem в Python
- Сравнение def и lambda в Python















