0

如果我不知道列表的数量,如何使用itertools.product函数?我有列表,里面有列表。

喜欢,

lis = [[1,2,3],[6,7,8],[2,4,5]]

通常我需要做的,

product([1,2,3],[6,7,8],[2,4,5])

如果输入是示例中的列表,我该怎么做?

4

2 回答 2

2

请尝试以下操作:
product(*lis)
这称为参数解包
简短说明:您也可以将参数解包与命名参数一起使用,并带有双星:

def simpleSum(a=1,b=2):
    return a + b
simpleSum(**{'a':1,'b':2}) # returns 3
于 2013-11-02T15:45:42.673 回答
1

使用参数解包

>>> lis = [[1,2,3],[6,7,8],[2,4,5]]
>>> list(itertools.product(*lis))
[(1, 6, 2), (1, 6, 4), (1, 6, 5), (1, 7, 2), (1, 7, 4), (1, 7, 5), (1, 8, 2),
 (1, 8, 4), (1, 8, 5), (2, 6, 2), (2, 6, 4), (2, 6, 5), (2, 7, 2), (2, 7, 4),
 (2, 7, 5), (2, 8, 2), (2, 8, 4), (2, 8, 5), (3, 6, 2), (3, 6, 4), (3, 6, 5),
 (3, 7, 2), (3, 7, 4), (3, 7, 5), (3, 8, 2), (3, 8, 4), (3, 8, 5)]
>>>
于 2013-11-02T15:45:35.977 回答