Курс 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. Сортировка HTML по CSS-селектору
  2. Работа со слайсами
  3. Функция enumerate в Python
  4. Сглаживание списка
  5. Работа с модулем Calendar
  6. Dict Comprehension в Python
  7. Конкатенация строк с помощью join()
  8. Деление в Python
  9. Переопределение метода __rshift__
  10. Использование двоеточия в Python
  11. Создание списка через цикл
  12. Сортировка с параметром key
  13. Цикл while в Python
  14. Метод rsub для пользовательских чисел
  15. Преобразование Excel в PDF с Spire.XLS
  16. Оператор «and» в Python
  17. Оператор морж в Python 3.8
  18. Возврат нескольких значений
  19. Подписка на каналы разработчиков
  20. Оператор Walrus в Python
  21. Метод __float__ в Python
  22. Многопоточность и асинхронное программирование в Python
  23. Библиотека itertools: объединение списков
  24. Сортировка в Python
  25. Создание новых списков в Python
  26. Метод __ixor__ для побитового исключающего ИЛИ
  27. Нахождение разницы между списками в Python
  28. Наследование в программировании
  29. Работа с кортежами в Python
  30. Вывод переменной и строки в Python
  31. Поиск индекса элемента
  32. Работа со словарями
  33. Роль запятой в Python
  34. Генераторы в Python
  35. Метод Self в Python
  36. Нарезка списков в Python
  37. Повторение элементов в Python
  38. Работа со строками
  39. Оператор @ для умножения матриц
  40. Создание генераторов в Python
  41. Рациональные числа в Python
  42. Область видимости переменных в Python
  43. Оператор match в Python

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