Курс 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. Объединение списков в Python
  3. Сложные типы данных в Python
  4. Иерархия классов в Python
  5. Основные операции с Numpy
  6. Выражения-генераторы в Python
  7. Вложенные функции в Python
  8. Область видимости переменных в Python
  9. Поиск всех индексов подстроки
  10. Определение локальных переменных в Python
  11. Работа со стеком в Python
  12. Списковое включение в Python
  13. Модуль os: работа с файлами и папками
  14. Перевернуть список в Python
  15. Создание задания в Cron
  16. Возведение в квадрат с помощью itertools
  17. Обмен данными с asyncio.Queue
  18. Работа с Telegram API на Python
  19. Установка и использование Logzero
  20. Генераторы в Python
  21. Математические функции в Python
  22. Форматирование строк в Python
  23. Функции в Python
  24. Запрос пароля с помощью getpass
  25. Запуск асинхронной корутины
  26. Возврат нескольких значений из функции
  27. Поиск индекса элемента
  28. Поиск частых элементов в списке
  29. Нахождение отличий в списках
  30. Применение функции к списку
  31. Работа с файлами и директориями в Python.
  32. Работа с timedelta
  33. Типы возвращаемых значений в Python
  34. Открытие и запись файлов
  35. Создание веб-приложения с Flask
  36. Метод setdefault() в Python
  37. Реализация операции -= для пользовательского класса
  38. Очистка вывода в Python
  39. История Python
  40. Создание словаря через dict comprehension
  41. Конкатенация списков в Python
  42. Пространство имен в Python
  43. Фильтрация входных данных в Python
  44. Открытие, чтение и закрытие файла
  45. Работа с коллекциями Python
  46. Работа с itertools
  47. Оператор * в Python
  48. Функция format() в Python
  49. Расширение операции побитового «и» в Python
  50. Распаковка значений в Python

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