我明白,要创建动态for循环,python中的递归或itertools模块是要走的路。可以说我正在递归的。动态Python中的循环
我要的是
for var1 in range(var1_lowerlimit, var1_upperlimit, var1_stepsize):
for var2 in range(var2_lowerlimit, var2_upperlimit, var2_stepsize):
:
:
# do_whatever()
重复了N个回路,其中n为变量
我现在是多少我有2所列出
variable_list = [ var1, var2, var3, ... ]
boundaries_list = [ [var1_lowerlimit, var1_upperlimit, var1_stepsize],
[var2_lowerlimit, var2_upperlimit, var2_stepsize], ...]
def dynamic_for_loop(variable_list , boundaries_list, no_of_loops, list_index = 0):
if no_of_loops <= 0:
# do_whatever()
else:
lower_bound = boundaries_list[list_index][0]
upper_bound = boundaries_list[list_index][1]
step_size = boundaries_list[list_index][2]
for index in range(lower_bound, upper_bound, step_size):
list_index += 1
try:
dynamic_for_loop(variable_list , boundaries_list, no_of_loops - 1, list_index)
except:
list_index = 0
dynamic_for_loop(variable_list , boundaries_list, no_of_loops - 1, list_index)
我做了复位在list_index上,因为它超出范围,但我无法得到我想要的结果。有人能够启发我出了什么问题吗?
这显然是过度工程。你究竟想达到什么目的? – DeepSpace
并且不要试图将其解压到单独的变量中。如果你的循环计数是可变的,那么只需处理元组'product()'就可以动态生成。 –
它的一个组合研究通过改变一些变量,每个变量都有自己的边界来观察,这就是为什么我把变量和边界变成一个列表来访问它使用list_index – Max