Skip to main content
 首页 » 编程设计

python之在 Python 中取消列出以使用 itertools.product

2025年05月04日16bjzhanghao

所以我已经尝试这样做了一段时间了,但我似乎找不到解决方案。也许您可以提供帮助! 我正在尝试“取消列出”列表列表,以便在 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')]