程序中在涉及当前循环与前一循环对比的情况,有时需要我们用于两个变量来存储中间结果。
for i in range(n):
# compare
compare tempres(i) and tempres(i-1)
# program logic
tempres(i) = func(i)
这时为了节省空间消耗,最好只申请两个变量。每次循环将更早的中间结果剔除,换位最新结果。这部分代码可以采用如下落实实现。
for i in range(n)
# compare
x, y = i%2, (i-1)%2
tempres[x] and tempres[y]
# program logic
这样 tempres[0] 与 tempres[1] 轮流(滚动)作为前一循环中间结果的存储。不必,每次将前一循环的结果都放在 tempres[0]中,这样会对一次赋值的运算。
网友评论