【发布时间】:2020-06-08 22:00:48
【问题描述】:
说,我有一个N维数组my_array[D1][D2]...[DN]
对于某个应用程序,例如敏感性分析,我需要固定一个点p=(d1, d2, ..., dN),并一次沿每个维度进行迭代。
产生的行为是
for x1 in range(0, D1):
do_something(my_array[x1][d2][d3]...[dN])
for x2 in range(0, D2):
do_something(my_array[d1][x2][d3]...[dN])
.
.
.
for xN in range(0, DN):
do_something(my_array[d1][d2][d3]...[xN])
如您所见,这里有很多重复的代码。我怎样才能减少工作并写一些优雅的代码呢?
例如,有没有类似下面的代码生成方法?
for d in range(0, N):
iterate along the (d+1)th dimension of my_array, denoting the element as x:
do_something(x)
【问题讨论】:
-
为什么用
c标记? -
在外面多写一个for循环,能满足你的需要吗?
-
@Odysseus 我使用标签“c”是因为我认为这是一个普遍的问题,它也发生在 c 中。
-
@PhungDuyPhong 是的,但是怎么做?如何遍历不同的索引位置?我梦想着
for i in range(1,N): iterate through index position i of my_array: do_something() -
您可以使用 itertools 代替嵌套循环。请参考以下链接stackoverflow.com/questions/38362368/…
标签: python arrays list iteration