0
我使用任意維度的多維結構。我的xrange
迭代Python列表,與代表一個多維陣列的索引的每個迭代:多維索引(任意維數)的列表表示的高效迭代
indices = [ i, j, k ]
其中
i = xrange(1,3)
j = xrange(3,5)
k = xrange(5,7)
要生成的所有可能的值,我使用下面的幼稚遞歸代碼:
def travtree(index,depth):
"Recursion through index list"
if depth >= len(indices):
# Stopping Condition
print index
else:
# Recursion
currindexrange = indices[depth]
for currindex in xrange(len(currindexrange)):
newindex = list(index) # list copy
newindex.append(currindexrange[currindex])
travtree(newindex,depth+1)
travtree([],0)
這很好,但我想知道,有沒有更高效的Pythonic方法來做到這一點?我嘗試在itertools
模塊中查找,但沒有發現任何內容。
對於itertools爲+1。有完全相同的方法,但發佈太慢 – ch3ka 2012-04-17 16:41:37
優秀的答案! – Gilead 2012-04-17 16:49:47