07 Июл 2023
1 мин
1303

Получение декартового произведения списков в Python

Одной из общих задач в программировании является получение декартового произведения из нескольких списков. Декартово произведение списков — это

Содержание

Одной из общих задач в программировании является получение декартового произведения из нескольких списков. Декартово произведение списков — это набор всех возможных комбинаций элементов из каждого списка.

Предположим, есть несколько списков:

lists = [
   [1, 2, 3],
   ['a', 'b'],
   [4, 5]
]

Требуется получить декартово произведение этих списков, которое будет выглядеть так:

[(1, 'a', 4), (1, 'a', 5), (1, 'b', 4), (1, 'b', 5), (2, 'a', 4), (2, 'a', 5), ...]

Это можно сделать с помощью модуля itertools, который предоставляет функцию product. Эта функция возвращает декартово произведение входных итерабельных объектов как кортежи.

import itertools

lists = [
   [1, 2, 3],
   ['a', 'b'],
   [4, 5]
]

result = list(itertools.product(*lists))
print(result)

Здесь звёздочка * используется для распаковки списков в аргументы функции product.

Таким образом, с помощью модуля itertools и его функции product можно легко получить декартово произведение нескольких списков в Python. Это решение более предпочтительно, чем использование вложенных циклов, так как оно более эффективно и читабельно.

Содержание

Добавить комментарий

Определи профессию по рисунку