Python: Как получить все упорядоченные опции из списков в - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть следующий метод

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 и не нашел решения.

1 Ответ

0 голосов
/ 18 декабря 2018

Как-то так должно вам помочь:

list(itertools.product([1,11,111], [2, 22, 222], [3, 33, 333]))
...