Курс 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"
- Функции map() и reduce() в Python
- Измерение времени выполнения кода
- Работа с JSON в Python
- Метод get() в Python
- Разделение строки на пары ключ-значение.
- Повторение и перенос строки
- Списковое включение в Python
- Очистка списка от False, None, 0, «»
- Разделение строк в Python
- Активация Matplotlib в Jupyter
- Создание объекта timedelta
- Рекурсия для обращения строки
- Синтаксис переменных цикла в Python
- Ускорение кода с помощью векторизации
- split() — разделение строки
- Numpy: использование Ellipsis
- Работа с Telegram API на Python
- Руководство по Pymorphy2
- Работа со словарями Python
- Копирование списков в Python
- Уникальные значения из списка
- Работа с Colorama
- Модуль inspect
- Проверка наличия элемента в списке
- Объединение кортежей в Python
- Лямбда-функции в Python
- GitHub в Telegram: подписка на уведомления
- Вставка переменных в шаблоны Flask
- Создание тестовых данных с Faker
- Транспонирование 2D-массива с помощью zip
- Счетчик ссылок в Python
- Тестирование времени с Freezegun
- Передача аргументов в Python
- Модуль os: работа с файлами и папками
- Профилирование данных с Pandas
- Изменение списка срезами
- Python и Монти Пайтон
- Работа с индексами списков
- Генераторы в Python
- Работа с классами данных
- Сериализация данных в JSON с помощью json.dumps
- Сравнение def и lambda функций в Python
- Создание уникального множества
- Оптимизация сравнения в Python
- Конвертация коллекций в Python.
- Поиск повторов в списке
- Управление доступом к модулю















