У меня есть следующий метод
a = [1, 11, 111]
b = [2, 22, 222]
c = [3, 33, 333]
list_of_lists = [a, b, c]
lists_with_the_i_elements = [0 for x in range(len(list_of_lists))]
for i in range(0, len(list_of_lists)):
lists_with_the_i_elements[i] = [list_i[i] for list_i in list_of_lists]
result = list(itertools.product(lists_with_the_i_elements[0],lists_with_the_i_elements[1],lists_with_the_i_elements[2]))
print(result)
reuslt:
[(1, 11, 111),
(1, 11, 222),
(1, 11, 333),
(1, 22, 111),
(1, 22, 222),
(1, 22, 333),
(1, 33, 111),
(1, 33, 222),
(1, 33, 333),
(2, 11, 111),
(2, 11, 222),
(2, 11, 333),
(2, 22, 111),
(2, 22, 222),
(2, 22, 333),
(2, 33, 111),
(2, 33, 222),
(2, 33, 333),
(3, 11, 111),
(3, 11, 222),
(3, 11, 333),
(3, 22, 111),
(3, 22, 222),
(3, 22, 333),
(3, 33, 111),
(3, 33, 222),
(3, 33, 333)]
ожидаемый результат:
[1,2,3]
[1,22,3]
[1,222,3]
[1,2,33]
[1,22,33]
[1,222,33]
[1,2,333]
[1,22,333]
[1,222,333]
[11,2,3]
[11,22,3]
[11,222,3]
[11,2,33]
[11,22,33]
[11,222,33]
[11,2,333]
[11,22,333]
[11,222,333]
...
Я хочу иметь функцию, которая приполучит list_of_lists
и вернет следующий вывод: следовательно, я хочу иметь функцию, которая выдаст мне все комбинации списков, которые являются выборками членов из каждого списка во входных данных, когда индекс значения соответствует индексу спискана входе.
Другой простой пример:
def combo(*args):
#do something
...
combo([1],[2],[3])
===>[1,2,3]
combo([1],[2],[3,33])
===>[1,2,3],[1,2,33]
Я просмотрел все параметры в itertools
и не нашел решения.