如何在python中的for循环中存储前一个元素

时间:2016-02-27 18:53:41

标签: python

我想在for循环中保留前一个元素。假设我有一个跟随循环

for i in range(5):
     print i

0 
1
2
3
4

我想在i=0的某个变量中保留i=1(previous value)。同样i=2 i=3等等。所以,我可以在循环中使用此前一个值。

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