Python: Декартово произведение

Обновлено: 01 авг., 23:20
191
Студент
74%
Завершения

src/solution.py

Вам предстоит реализовать функцию product(), которая принимает один и более позиционных параметров — iterable любого вида, и возвращает список кортежей. Возвращаемый список представляет собой декартово произведение элементов входных последовательностей — все сочетания "каждый с каждым". Например, для последовательностей [1, 2] и 'ab' (помним, строки — тоже iterable) функция должна вернуть список [(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b')], то есть каждый элемент списка с каждым символом строки.

from solution import product
product()  # хотя бы одна последовательность должна быть дана
# Traceback (most recent call last):
#    ...
# TypeError: product() missing 1 required positional argument: 'sequence'
product([])
# []
product([1, 2], 'abc')
# [(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'b'), (2, 'c')]
product('hello', [], 'world')
# []
# ^ если хотя бы одна из входных последовательностей пустая,
# то выходной список тоже будет пуст

Для полного доступа к испытанию нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов