【发布时间】:2015-02-21 09:28:13
【问题描述】:
所以我有一个名为 Object 的多维列表,有 n 个维度
我正在为这个对象的所有元素执行一个过程(可以是任何东西,包括其他多维列表)
所以我开始生成以下枚举对象的归纳方式
案例 1:1-d(列表)
i = 0
while(i < len(Object)):
f(Object[i])
i+=1
案例 2:2-d(列表中的列表)
i = 0
while(i < len(Object)):
j = 0
while(j < len(Object[i][j])):
f(Object[i])
j+=1
i+=1
至此,通过下面的代码就可以直观的看出n维对象可以遍历了
indexarray = [] #multi dimensional index structure
i = 0
while(i < n):
indexarray.append(0)
i+=1
#Prepared the indices
while(indexarray[0] < len(Object)):
indexarray[1] = 0
while(indexarray[1] < len(Object[indexarray[0]])):
indexarray[2] = 0
while(indexarray[2] < len(Object[indexarray[0]][indexarray[1]])):
indexarray[3] = 0
.
.
.
indexarray[n-1] = 0
while(indexarray[n-1] < len(Object[indexarray[0]][...]))
f(Object[...])
indexarray[n-1]+=1
.
.
.
indexarray[2]+=1
indexarray[1]+=1
indexarray[0]+=1
除了问题是我将不得不创建一个自己生成代码的子例程。个人觉得太棒了!但是......也许有一种更“优雅”的方式来做到这一点。相反,应该如何进行?
【问题讨论】:
标签: python arrays list multidimensional-array nested