如何遍历列表中的所有项,但不包括最后一项?
我想用一个for
循环来遍历一个列表,但不想包括最后一个项目。我想检查每个项目和它后面的那个项目。有没有办法不使用索引来做到这一点?
6 个回答
23
如果你想要逐个获取序列中的所有元素,可以使用这个方法(pairwise函数来自itertools模块的示例)。
from itertools import tee, izip, chain
def pairwise(seq):
a,b = tee(seq)
b.next()
return izip(a,b)
for current_item, next_item in pairwise(y):
if compare(current_item, next_item):
# do what you have to do
如果你需要把最后一个值和某个特定的值进行比较,可以把那个特定的值加到序列的末尾。
for current, next_item in pairwise(chain(y, [None])):
61
比较当前项和下一个项的最简单方法是:
for i, j in zip(a, a[1:]):
# compare i (the current) to j (the following)
431
for x in y[:-1]
如果y
是一个生成器,那么上面的做法就不行。