使用Python工作,但尋找一般結構。從for循環的下一級抽象?
我有一個函數,需要輸入一個長度爲L的數組(例如,[0,0,0,...,0]與L半正元素)。輸入數組的每個元素都有一個正的最大值,例如,我有一個長度爲L的數組max_vals = [10,5,4,...,7]。我想遍歷所有可能的函數輸入。
這可以使用「泛化計數」很容易地完成,但我不知道是否有更優雅的方式來做到這一點。具體而言,我想像一些結構:
meta_for vector in meta_range(max_vals):
relevant_function(vector)
即功能上等同於:
for i_1 in range(max_vals[0]):
for i_2 in range(max_vals[1]):
...
for i_L in range(max_vals[L-1]):
relevant_function([i_1, i_2, ..., i_L])
的困難在於,嵌套for循環的數量取決於L,並因此不能硬編碼。
這樣的事情是否存在?
這聽起來像你正在尋找計算[發電機組](http://en.wikipedia.org/維基/ Power_set)。 – 2015-04-05 19:49:58
是的。簡單的方法是遞歸。 – 2015-04-05 19:50:02
你能舉一個輸入和期望輸出的例子嗎? – brunodea 2015-04-05 19:50:53