Курс Python → Создание вложенного генератора
Для создания вложенного генератора внутри генератора в Python используется следующий синтаксис: [[expression for y in x] for x in iterator]. Это позволяет нам пройти по каждому элементу внешнего итерируемого объекта, затем пройти по каждому элементу внутреннего итерируемого объекта и применить к ним выражение expression.
Примером использования вложенных генераторов может быть обход двумерной структуры данных, такой как список списков, и преобразование ее элементов в другую двумерную структуру. Например, у нас есть список списков, представляющий матрицу, и мы хотим создать новую матрицу, умножив каждый элемент на 2:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
new_matrix = [[x * 2 for x in row] for row in matrix]
В результате выполнения данного кода переменная new_matrix будет содержать следующую двумерную структуру данных: [[2, 4, 6], [8, 10, 12], [14, 16, 18]]. Каждый элемент исходной матрицы был умножен на 2 и сохранен в новой матрице.
Использование вложенных генераторов в Python позволяет нам компактно и элегантно обрабатывать двумерные структуры данных, применяя выражения к их элементам без необходимости использования вложенных циклов. Это делает код более читаемым и понятным, особенно при работе с большими объемами данных.
Другие уроки курса "Python"
- Функциональное программирование в Python
- Поиск всех индексов подстроки
- Лимиты на ресурсы Python
- Гибкие функции Python
- Срезы в Python
- Логирование с Logzero
- Список переменных в Python
- Работа с библиотекой requests
- Использование двоеточия в Python
- Генераторы словарей и множеств
- Руководство по библиотеке pydantic
- Python Аргументы по умолчанию
- Преобразование числа в восьмеричную строку
- Объединение словарей в Python
- Настройка шрифта и цвета в Tkinter
- Игра «Виселица» на Python
- Оформление кода на Python
- Избегайте изменяемых аргументов
- Поиск шаблона в начале строки
- Работа с Path в Python
- Метод difference_update() — разность множеств
- Python enumerate() функции
- Переворот последовательности
- Улучшенные подсказки для импорта в Python 3.12
- Печать комбинаций в Python с Itertools
- Ограничение ресурсов в Python
- Модуль xkcd: загрузка комиксов
- Определение объема памяти объекта
- Настройка вывода NumPy
- Преобразование чисел в восьмеричную строку
- Определение объема памяти объекта
- PUT запрос для обновления данных
- Измерение времени выполнения кода
- Частичное применение функций в Python
- Операция += для списков
- Метод rpow в Python
- Декораторы в Python
- Создание и удаление объектов
- Игра Виселица на Python
- Flask: создание веб-приложений
- Сохранение Unicode в JSON
- Пересечение списков с использованием множеств
- Работа с NumPy массивами
- Работа с библиотекой xkcd
- Определение относительного пути
- Генерация случайных чисел в Python















