fil*_*ips 11 loops nested function dynamic python-3.5
a = [1]
b = [2,3]
c = [4,5,6]
d = [a,b,c]
for x0 in d[0]:
for x1 in d[1]:
for x2 in d[2]:
print(x0,x1,x2)
Run Code Online (Sandbox Code Playgroud)
结果:
1 2 4
1 2 5
1 2 6
1 3 4
1 3 5
1 3 6
Run Code Online (Sandbox Code Playgroud)
完美,现在我的问题是如何定义这个功能,考虑到当然可能有更多的值列表.想法是获得功能,动态地产生相同的结果.
有没有办法向python解释:"例如,做8个嵌套循环"?
Ald*_*den 11
您可以使用它itertools来为您计算产品,并可以使用*运算符将列表转换为itertools.product()函数的参数.
import itertools
a = [1]
b = [2,3]
c = [4,5,6]
args = [a,b,c]
for combination in itertools.product(*args):
print combination
Run Code Online (Sandbox Code Playgroud)
输出是
(1, 2, 4)
(1, 2, 5)
(1, 2, 6)
(1, 3, 4)
(1, 3, 5)
(1, 3, 6)
Run Code Online (Sandbox Code Playgroud)