У меня есть следующий метод
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 и не нашел никакого решения.
Исправил вопрос, ошибся ... Запутался
что ты уже испробовал?






Что-то вроде этого должно вам помочь:
list(itertools.product([1,11,111], [2, 22, 222], [3, 33, 333]))
эээ .. нет, пока непонятно. Может быть, пример? См. здесь
Я просмотрел itertools и случайный поиск в Google - я могу просто реализовать себя, но я ищу для этого `` питонический '' способ
«Python» - это просто использование стандартной библиотеки. Просто скажите мне, почему itertools.product не служит вашим целям
а также 12, 112, 113