🎉 Добавлен материал по 9 заданию
Python
Модули
itertools

itertools.product

Функция itertools.product используется для вычисления декартова произведения входных итерируемых объектов. Она эквивалентна вложенным циклам for, но записывается компактнее и эффективнее использует память.

Синтаксис

from itertools import product
 
itertools.product(*iterables, repeat=1)
  • *iterables — последовательности, для которых вычисляется декартово произведение.
  • repeat — сколько раз использовать входные последовательности (по умолчанию 1).

Примеры использования

Простое декартово произведение

from itertools import product
 
A = [1, 2]
B = ['a', 'b']
result = list(product(A, B))
print(result)

Вывод:

[(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b')]

Использование параметра repeat

from itertools import product
 
result = list(product([0, 1], repeat=3))
print(result)

Вывод:

[(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1)]

Развертывание результата с помощью *

for p in product('AB', repeat=2):
    print(''.join(p))

Вывод:

AA
AB
BA
BB
💡Примечание

Функция product возвращает кортеж из элементов. Для того чтобы их объединить, необходимо использовать метод .join() для пустой строки

Применение

  • Перебор всех возможных комбинаций параметров.
  • Генерация булевых последовательностей.
  • Поиск возможных сочетаний элементов.

Функция product полезна в комбинаторных задачах и упрощает работу с вложенными циклами.