Курс 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. Функции map() и reduce() в Python
  2. Измерение времени выполнения кода
  3. Работа с JSON в Python
  4. Метод get() в Python
  5. Разделение строки на пары ключ-значение.
  6. Повторение и перенос строки
  7. Списковое включение в Python
  8. Очистка списка от False, None, 0, «»
  9. Разделение строк в Python
  10. Активация Matplotlib в Jupyter
  11. Создание объекта timedelta
  12. Рекурсия для обращения строки
  13. Синтаксис переменных цикла в Python
  14. Ускорение кода с помощью векторизации
  15. split() — разделение строки
  16. Numpy: использование Ellipsis
  17. Работа с Telegram API на Python
  18. Руководство по Pymorphy2
  19. Работа со словарями Python
  20. Копирование списков в Python
  21. Уникальные значения из списка
  22. Работа с Colorama
  23. Модуль inspect
  24. Проверка наличия элемента в списке
  25. Объединение кортежей в Python
  26. Лямбда-функции в Python
  27. GitHub в Telegram: подписка на уведомления
  28. Вставка переменных в шаблоны Flask
  29. Создание тестовых данных с Faker
  30. Транспонирование 2D-массива с помощью zip
  31. Счетчик ссылок в Python
  32. Тестирование времени с Freezegun
  33. Передача аргументов в Python
  34. Модуль os: работа с файлами и папками
  35. Профилирование данных с Pandas
  36. Изменение списка срезами
  37. Python и Монти Пайтон
  38. Работа с индексами списков
  39. Генераторы в Python
  40. Работа с классами данных
  41. Сериализация данных в JSON с помощью json.dumps
  42. Сравнение def и lambda функций в Python
  43. Создание уникального множества
  44. Оптимизация сравнения в Python
  45. Конвертация коллекций в Python.
  46. Поиск повторов в списке
  47. Управление доступом к модулю

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