所以我已经尝试这样做了一段时间了,但我似乎找不到解决方案。也许您可以提供帮助! 我正在尝试“取消列出”列表列表,以便在 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')
请您参考如下方法:
只需使用 * 运算符(有时称为“splat”运算符)来解压您的论点:
list(product(*x))
Out[34]:
[(1, 'a', 'B'),
(1, 'a', 'C'),
(2, 'a', 'B'),
(2, 'a', 'C'),
(3, 'a', 'B'),
(3, 'a', 'C')]
