如果你的硬编码循环是你想要的,
for var1 in [1,2,3]:
for var2 in [10,20,30]:
do something with var1 and var2
然后给出
var1 = [1,2,3]
var2 = [10,20,30]
你也可以用
for v1 in var1:
for v2 in var2:
do something with v1 and v2
取而代之的是
variables2loop = {'var1' : [1,2,3],
'var2' : [10,20,30]}
用同样的方法
for v1 in variables2loop['var1']:
for v2 in variables2loop['var2']:
do something with v1 and v2
甚至
from itertools import product
for v in product(*variables2loop.values()):
do something with v[0] and v[1], etc.
最后一个可以工作,即使您更改了存储在dict中的变量的数量,但它确实假定dict是有序的,所以它不适用于Python的旧版本。您只需使用一个列表就可以了。
var = [
[1,2,3],
[10,20,30],
]
for v in product(*var):
do something with v[0] and v[1], etc.
# similarly
for v0 in var[0]:
for v1 in var[1]:
do something with v0 and v1