我明白,要創建動態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