如果我不知道列表的数量,如何使用itertools.product函数?我有列表,里面有列表。
喜欢,
lis = [[1,2,3],[6,7,8],[2,4,5]]
通常我需要做的,
product([1,2,3],[6,7,8],[2,4,5])
如果输入是示例中的列表,我该怎么做?
如果我不知道列表的数量,如何使用itertools.product函数?我有列表,里面有列表。
喜欢,
lis = [[1,2,3],[6,7,8],[2,4,5]]
通常我需要做的,
product([1,2,3],[6,7,8],[2,4,5])
如果输入是示例中的列表,我该怎么做?
请尝试以下操作:
product(*lis)
这称为参数解包。
简短说明:您也可以将参数解包与命名参数一起使用,并带有双星:
def simpleSum(a=1,b=2):
return a + b
simpleSum(**{'a':1,'b':2}) # returns 3
使用参数解包:
>>> 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)]
>>>