#python #arrays #loops #multidimensional-array
#python #массивы #циклы #многомерный массив
Вопрос:
Предположим, у меня есть список списков, подобных этому:
list = [[1, 2, 3],
[4, 5, 6, 7],
[3, 4]]
Я хочу создать двумерный массив, подобный этому, используя приведенный выше ввод в Python:
result = [[1,4,3],[1,4,4],[1,5,3],[1,5,4],[1,6,3],[1,6,4],[1,7,3],[1,7,4],
[2,4,3],[2,4,4],[2,5,3],[2,5,4],[2,6,3],[2,6,4],[2,7,3],[2,7,4],
[3,4,3],[3,4,4],[3,5,3],[3,5,4],[3,6,3],[3,6,4],[3,7,3],[3,7,4]]
Это своего рода таблица истинности.
Примечание — Длина списка может варьироваться (он может содержать больше списков), а также длина внутренних списков может меняться.
Ответ №1:
Вы можете использовать itertools.product() . l — ваш исходный список (избегайте использования «list» в качестве имени из-за существующей встроенной структуры данных в python)
res=[list(i) for i in itertools.product(*l)]
>>> print(res)
[[1, 4, 3], [1, 4, 4], [1, 5, 3], [1, 5, 4], [1, 6, 3], [1, 6, 4], [1, 7, 3], [1, 7, 4], [2, 4, 3], [2, 4, 4], [2, 5, 3], [2, 5, 4], [2, 6, 3], [2, 6, 4], [2, 7, 3], [2, 7, 4], [3, 4, 3], [3, 4, 4], [3, 5, 3], [3, 5, 4], [3, 6, 3], [3, 6, 4], [3, 7, 3], [3, 7, 4]]