我想将前一个元素保留在for循环中。假设我有一个下面的循环如何将前一个元素存储在python中的for循环中
for i in range(5):
print i
0
1
2
3
4
我想保留i=0
时i=1(previous value)
某些变量。同样i=2
时i=3
等。所以,我可以在循环中使用此前值。
我想将前一个元素保留在for循环中。假设我有一个下面的循环如何将前一个元素存储在python中的for循环中
for i in range(5):
print i
0
1
2
3
4
我想保留i=0
时i=1(previous value)
某些变量。同样i=2
时i=3
等。所以,我可以在循环中使用此前值。
一开始把一个初始值,然后就重新分配它在最后:
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
试试这个:
for i in range(5):
print i
if i > 0: print 'previous:\t%d' %(i-1)
'suppose'这个词在'我有一个后续循环'之前。这个答案可以用于* that * case,但不是很多。 – zondo
目前尚不清楚你如何计划使用先前的值,但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
怎么样'我 - 1'? – vaultah
@vaultah这不会很灵活。这可能只是一个例子。 – zondo