所以我一直试图这样做一段时间,我似乎无法找到解决方案......也许你可以帮忙!
我试图"取消列表"列表列表,以便在itertools.product()
中使用它们。
如您所知,itertools.product()
可以接收多个迭代。让我说我得到了这个列表列表:
x=[[1,2,3],["a"],["B","C"]]
如果我们将其放入itertools.product()
:
for i in product(x):
print i
我们会收到
([1, 2, 3],)
(['a'],)
(['B', 'C'],)
我需要帮助的是找到一种方法来取消"取消列表" x,因此itertools.product()中将有3个迭代,如下所示:
for i in product([1,2,3],["a"],["B","C"]):
print i
将打印:
(1, 'a', 'B')
(1, 'a', 'C')
(2, 'a', 'B')
(2, 'a', 'C')
(3, 'a', 'B')
(3, 'a', 'C')
答案 0 :(得分:5)
只需使用*运算符(有时称为“splat”运算符)来解压缩参数:
list(product(*x))
Out[34]:
[(1, 'a', 'B'),
(1, 'a', 'C'),
(2, 'a', 'B'),
(2, 'a', 'C'),
(3, 'a', 'B'),
(3, 'a', 'C')]
答案 1 :(得分:2)