目标:给定多个列表,返回列表之间所有可能的排列组合
如给定:
a = [1,2]
b = [4,5]
c = [6,7]
d = [8,9]
期望输出上述多个列表所有可能的排列组合(2 * 2 * 2 * 2 = 16种):
(1, 4, 6, 8)
(1, 4, 6, 9)
(1, 4, 7, 8)
(1, 4, 7, 9)
(1, 5, 6, 8)
(1, 5, 6, 9)
(1, 5, 7, 8)
(1, 5, 7, 9)
(2, 4, 6, 8)
(2, 4, 6, 9)
(2, 4, 7, 8)
(2, 4, 7, 9)
(2, 5, 6, 8)
(2, 5, 6, 9)
(2, 5, 7, 8)
(2, 5, 7, 9)
实现代码如下:
from itertools import product
loop_val = [a,b,c,d]
for i in product(*loop_val):
print(i)
添加 * 是为了先将loop_val 进行解压,后进行排列组合,不加 * 输出结果为:
([1, 2],)
([4, 5],)
([6, 7],)
([8, 9],)