Курс 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. TypedDict для kwargs в Python 3.12
  2. Метод rsub в Python: расширение функциональности вычитания
  3. Разделение строк в Python
  4. Использование модуля __future__
  5. Pillow: работа с изображениями
  6. Проверка файла .py на синтаксис.
  7. Метод enumerate() в Python
  8. Справка по импортированным модулям
  9. Dict Comprehension в Python
  10. Возведение в квадрат с помощью itertools
  11. Оператор += в Python
  12. Создание лямбда-функций
  13. Условные выражения в Python
  14. Работа с файлами в Python
  15. Объединение строк с помощью метода join
  16. Python: библиотеки и функции
  17. Многострочные строки в Python
  18. Генераторы списков
  19. Обработка ошибок в Python
  20. Python groupby() из itertools: работа с повторяющимися элементами
  21. Нахождение самого длинного слова в списке с помощью max
  22. Списки в Python
  23. Поиск частых элементов в списке
  24. Работа с f-строками 2.0
  25. Разделение списка на гнппы
  26. Создание namedtuple из словаря
  27. Работа с IP-адресами в Python
  28. Вывод букв строки в Python
  29. Логирование с Logzero
  30. Преобразование Word в PDF с Spire.Doc
  31. Генераторы в Python
  32. Сериализация объектов в Python
  33. Удаление элементов из списка в Python
  34. Открытие, чтение и закрытие файла
  35. Python Метод sleep() времени
  36. Использование super() в Python
  37. Ограничение ресурсов в Python
  38. Работа с многоуровневыми словарями в Python
  39. Возвращение нескольких значений через кортеж или класс
  40. Работа с аргументами командной строки в Python
  41. Проблема сравнения словарей
  42. Python Тесты и Гайды
  43. Создание множества в Python
  44. SciPy: широкий функционал для математических операций
  45. Работа с атрибутом dict

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