2016-02-27 66 views
-3

我想将前一个元素保留在for循环中。假设我有一个下面的循环如何将前一个元素存储在python中的for循环中

for i in range(5): 
    print i 

0 
1 
2 
3 
4 

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

+0

怎么样'我 - 1'? – vaultah

+0

@vaultah这不会很灵活。这可能只是一个例子。 – zondo

回答

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 
0

试试这个:

for i in range(5): 
    print i 
    if i > 0: print 'previous:\t%d' %(i-1) 
+0

'suppose'这个词在'我有一个后续循环'之前。这个答案可以用于* that * case,但不是很多。 – zondo

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 
相关问题