【发布时间】:2021-07-01 12:33:12
【问题描述】:
我有一个要求,我需要以梯形方式循环。它看起来像这样。
for i in [i1,i2,.....]:
for j in [j1,j2,.....]:
for k in [k1,k2,.....]:
for l in [l1,l2,.....]:
for m in [m1,m2,.....]:
loop_variables = some computation on i,j,k,l,m
np.save('matrix.npy',loop_variables)
这段代码让我的笔记本电脑死机了。所以,我使用itertools,del,gc的方式如下。
import itertools
import gc
i = [i1,i2,.....]
j = [j1,j2,.....]
k = [k1,k2,.....]
l = [l1,l2,.....]
m = [m1,m2,.....]
lst = [i,j,k,l,m]
f_lst = itertools.product(*lst)
del i,j,k,l,m, lst
for i,j,k,l,m in f_lst:
loop_variables = some computation on i,j,k,l,m
np.save('matrix.npy',loop_variables)
del loop_variables, i,j,k,l,m
gc.collect()
但问题仍然存在。我有以下问题
- 上面的代码在解决梯形循环方面是否更好
- 我应该如何更改上面的代码,使其在一定时间后不会冻结。
【问题讨论】:
标签: python memory memory-management memory-leaks garbage-collection