Курс Python → Генераторы по генератору
Генераторы в Python — это специальный тип функций, которые позволяют генерировать последовательности значений по требованию, не загружая всю последовательность в память. Они итерируемы, что означает, что их можно использовать в циклах for для обхода элементов последовательности. Однако, генераторы также могут быть использованы для создания других генераторов, что позволяет создавать более сложные последовательности.
Для создания генератора по генератору в Python можно использовать два выражения, разделенных запятой. Например, если у нас есть генератор, который возвращает числа от 1 до 10, мы можем создать новый генератор, который будет возвращать квадраты этих чисел, просто добавив выражение возводящее число в квадрат. Таким образом, мы можем создавать цепочки генераторов для преобразования данных.
def numbers_generator():
for i in range(1, 11):
yield i
def squares_generator():
for num in numbers_generator():
yield num ** 2
for square in squares_generator():
print(square)
Также можно использовать вложенные генераторы, где один генератор будет вложен в другой. Это позволяет создавать более сложные структуры данных, например, генератор, который возвращает последовательности чисел, каждая из которых является результатом другого генератора. Такой подход позволяет эффективно управлять памятью и улучшить производительность программы.
Использование генераторов по генератору в Python позволяет писать более компактный и читаемый код, а также улучшает производительность программы за счет ленивой загрузки данных. Благодаря гибкости генераторов, можно легко преобразовывать и комбинировать данные, создавая сложные последовательности значений без необходимости хранить их в памяти.
Другие уроки курса "Python"
- Метод __call__ в Python
- Pillow: работа с изображениями
- Python reversed() vs срез[::-1]
- JSON в Python: модуль, dump, dumps, load
- Операторы присваивания в Python
- Объединение словарей в Python
- Отображение графиков в Jupyter с Matplotlib
- Работа с zip-архивами в Python
- Метод invert для побитового отрицания
- Функции высшего порядка в Python
- Расширение информации об ошибке в Python
- Замыкания в Python
- Вывод баннеров
- Основы слова
- Комплексные числа в Python
- Преобразование строки в число
- Разработка Telegram-ботов
- Итерация по итерируемым объектам
- Генераторы списков
- Декоратор для группы пользователей в Django
- Создание списков в Python
- Оптимизация сравнения в Python
- Оператор «not» в Python
- Лямбда-функции в Python
- Декораторы в Python
- Векторизация в Python с NumPy.
- Мощь вложенных функций в Python
- Оценка точности модели
- Комментарии в Python
- Виртуальные среды в Python
- Тестирование модели в PyTorch
- Модуль math: константы π и e
- Работа с YAML в Python
- Создание пустых функций и классов в Python
- split() без разделителя
- Переопределение метода __pow__
- Применение функции map() с лямбда-функциями
- Разделение строки на подстроки в Python
- Определение объема памяти объекта
- Метод __irshift__ для побитового сдвига вправо
- Преобразование регистра символов
- Игра «Виселица» на Python
- Генерация чисел с range()
- Работа с исключениями в Python
- Чтение и запись TOML-конфигов
- Метод matmul для умножения матриц
- Создание виртуальной среды
- Поиск кода















