Одной из общих задач в программировании является получение декартового произведения из нескольких списков. Декартово произведение списков — это набор всех возможных комбинаций элементов из каждого списка.
Предположим, есть несколько списков:
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. Это решение более предпочтительно, чем использование вложенных циклов, так как оно более эффективно и читабельно.
Добавить комментарий