Курс 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"
- Метод init в Python
- Библиотека Rich: форматирование текста
- Объединение списков в Python
- Библиотека sh: удобные команды терминала
- Операторы увеличения и уменьшения переменной
- Освоение Python
- Непрерывная проверка в Python
- Подсчет вхождений элементов
- Python OrderedDict и fromkeys() — работа с словарями
- Функция enumerate в Python
- Нахождение отличий в списках
- Структурирование данных с Pydantic
- Область видимости переменных
- Структура данных словарь в Python
- Получение текущего времени в Python
- Философия Python
- Операторы сравнения в Python
- Удаление ключей из словаря
- Работа с модулем random
- Удаление дубликатов из списка с помощью dict.fromkeys
- f-строки в формате строк
- Циклы for в Python
- Замер времени выполнения кода
- Работа с необработанными строками
- Создание таблиц в терминале с PrettyTable
- Атрибуты класса и экземпляра
- Локальные переменные.
- Регулярные выражения: метод match
- Получение частей дроби
- Метод remove() для удаления элемента из списка
- Упрощенный вывод данных в Python
- Обучение модели с указанием эпох
- Отправка поздравлений по дню рождения
- Измерение времени выполнения кода с использованием time
- Контроль точности вывода чисел
- Операция += для списков
- Улучшение читаемости кода в Python
- Функция zip() — объединение последовательностей
- Изменения в обработке логических значений
- Присоединение элементов коллекции
- TON Smart Challenge #2: участие и подготовка
- Создание функций высшего порядка
- Функция all() в Python
- Получение комбинаций в Python
- Решение переменной Шредингера
- Использование модуля math
- Применение промокода в Много лосося
- Использование type hints















