Курс 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"

  1. Функциональное программирование в Python
  2. Поиск всех индексов подстроки
  3. Лимиты на ресурсы Python
  4. Гибкие функции Python
  5. Срезы в Python
  6. Логирование с Logzero
  7. Список переменных в Python
  8. Работа с библиотекой requests
  9. Использование двоеточия в Python
  10. Генераторы словарей и множеств
  11. Руководство по библиотеке pydantic
  12. Python Аргументы по умолчанию
  13. Преобразование числа в восьмеричную строку
  14. Объединение словарей в Python
  15. Настройка шрифта и цвета в Tkinter
  16. Игра «Виселица» на Python
  17. Оформление кода на Python
  18. Избегайте изменяемых аргументов
  19. Поиск шаблона в начале строки
  20. Работа с Path в Python
  21. Метод difference_update() — разность множеств
  22. Python enumerate() функции
  23. Переворот последовательности
  24. Улучшенные подсказки для импорта в Python 3.12
  25. Печать комбинаций в Python с Itertools
  26. Ограничение ресурсов в Python
  27. Модуль xkcd: загрузка комиксов
  28. Определение объема памяти объекта
  29. Настройка вывода NumPy
  30. Преобразование чисел в восьмеричную строку
  31. Определение объема памяти объекта
  32. PUT запрос для обновления данных
  33. Измерение времени выполнения кода
  34. Частичное применение функций в Python
  35. Операция += для списков
  36. Метод rpow в Python
  37. Декораторы в Python
  38. Создание и удаление объектов
  39. Игра Виселица на Python
  40. Flask: создание веб-приложений
  41. Сохранение Unicode в JSON
  42. Пересечение списков с использованием множеств
  43. Работа с NumPy массивами
  44. Работа с библиотекой xkcd
  45. Определение относительного пути
  46. Генерация случайных чисел в Python

Marketello читают маркетологи из крутых компаний