我想定义
list([[i0,i1,i2,i3, ..., ik]] for i0 in T[0] for i1 in T[1] for i2 in T[2] for i3 in T[3] for ...)
由于k是不确定的,所以我不能像
list([[i0,i1,i2,i3]] for i0 in T[0] for i1 in T[1] for i2 in T[2] for i3 in T[3]).
有一般解决方案吗?
非常感谢!
答案 0 :(得分:0)
您嵌套的for
将成为T
中子列表的笛卡尔积。 Itertools具有一个product()
函数,该函数将为您提供这些值的迭代器,您可以像这样使用它:
from itertools import product
T = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10,11, 12]]
p = product(*T)
for i in p:
print(i)
(1、4、7、10)
(1、4、7、11)
(1、4、7、12)
(1、4、8、10)
(1、4、8、11)
(1、4、8、12)
(1、4、9、10)
(1、4、9、11)
...
(3,6,9,10)
(3,6,9,11)
(3,6,9,12)
当然,如果需要列表中的值,也可以将其传递给list()
。