【发布时间】:2020-07-09 21:09:00
【问题描述】:
我有两个问题,我认为它们相关性足以成为一个问题的一部分。但如果不是,我可以将它们作为单独的问题提出。请告诉我。我也提前道歉,因为我觉得我做错了什么,但我不知道是什么。
到目前为止,我在 Python 中运行以下代码(使用 Jupyter 笔记本,如果有影响的话):
首先,我初始化一个很长的(多级?)列表:
object = [[[[[[[[None for i in range(2)]
for j in range(2)]
for k in range(2)]
for l in range (2)]
for m in range (2)]
for n in range (2)]
for o in range (2)]
for p in range (2)]
接下来,我运行一堆循环,一个在另一个循环中,然后运行一个函数(这取决于我在循环中使用的所有索引),将结果分配给我在上面创建的一个位置:
for i in range(2):
for j in range(2):
for k in range(2):
for l in range(2):
for m in range(2):
for n in range(2):
for o in range(2):
for p in range(2):
object[i][j][k][l][m][n][o][p] = function(i,j,k,l,m,n,o,p)
这是两个相关的问题:
-
函数在每次迭代中返回的对象彼此完全独立(例如,我可以在一台计算机上运行循环的每次迭代并稍后收集它们)。所以我想这个循环将是在并行/多处理中解决的理想候选者。如果是这样,我该怎么做?我发现一些提到并行运行嵌套循环,但我不明白它如何适用于我的案例。完全披露:我从来没有在 Python 中并行运行过任何东西。
-
这个列表(引用这个相当令人不快的
object[i][j][k][l][m][n][o][p])是如何正确保留结果的(以您以后可以找到的方式)?或者你能建议一个更好的方法吗?如果相关,则函数返回的对象具有 pandas 数据帧、数字和字符串等属性。
【问题讨论】:
-
如果您的案例仅适用于 2**8 并且您不太关心速度,那么您当前的代码对我来说看起来不错。 1)当使用多处理时,就像一个 CPU 做 i=0,另一个做 i=1 部分。见multiprocessing doc。 2) 似乎与 object[][][]... 妥善保存
标签: python loops indexing multiprocessing