我想在for循环中保留前一个元素。假设我有一个跟随循环
for i in range(5):
print i
0
1
2
3
4
我想在i=0
的某个变量中保留i=1(previous value)
。同样i=2
i=3
等等。所以,我可以在循环中使用此前一个值。
答案 0 :(得分:2)
在开头放一个初始值,然后在结尾处重新分配:
j = None
for i in range(5):
print "j:", j
print "i:", i
j = i
print
输出:
j: None
i: 0
j: 0
i: 1
j: 1
i: 2
j: 2
i: 3
j: 3
i: 4
答案 1 :(得分:0)
试试这个:
for i in range(5):
print i
if i > 0: print 'previous:\t%d' %(i-1)
答案 2 :(得分:0)
目前尚不清楚您计划如何使用之前的值,但Python的itertools
模块配方pairwise
可能对您有用:
from itertools import tee, chain
def pairwise(iterable):
a, b = tee(iterable)
next(b, None)
return zip(a, b)
>>> for prev, curr in pairwise(range(5)):
... print(prev ,curr)
0 1
1 2
2 3
3 4
您需要curr
来包含0:
>>> for prev, curr in pairwise(chain([None],range(5))):
... print(prev ,curr)
None 0
0 1
1 2
2 3
3 4