Курс 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. Метод splitlines() для разделения строк
  2. Вычисление логарифмов в Python
  3. Удаление специальных символов
  4. Ввод нескольких значений
  5. Нарезка списков в Python
  6. Экспорт данных в файл.
  7. Возврат нескольких значений из функции
  8. Иерархия классов в Python
  9. f-строки в формате строк
  10. Распаковка значений в Python
  11. Хэш-функции и метод цепочек
  12. Синхронизация доступа к ресурсам
  13. Методы split() и join() — Python строк.
  14. Строковое представление объектов
  15. Создание словаря в Python
  16. Проблемы с dict в Python
  17. Добавление вложенных списков
  18. Принципы программирования
  19. Переопределение метода divmod
  20. Срез в Python
  21. Экспорт функций в Python
  22. Numpy: объединение массивов
  23. Сравнение def и lambda функций в Python
  24. Форматирование заголовков в Python
  25. Профилирование кода
  26. Подсчет элементов с помощью Counter
  27. Управление виртуальными окружениями в Python
  28. Уникальность ключей в словаре
  29. Хранение переменных в словаре.
  30. Функция all() в Python
  31. Экспорт данных с помощью writefile
  32. Создание вкладок с TKinter
  33. Метод gt в Python
  34. Нахождение разницы между списками в Python
  35. Создание коллекций из генератора
  36. Получение размера объекта с sys.getsizeof()
  37. Асинхронный код в Python
  38. Логические операторы в Python
  39. Переопределение метода __eq__
  40. Combobox в Tkinter
  41. Операции с массивами в NumPy
  42. Создание класса в Python
  43. Классы данных в Python

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