如何遍历列表中的最后一项而不是所有项目?

我想通过一个列表来检查每个项目和它后面的项目。

有没有一种方法可以循环遍历所有内容,但是最后一项使用for x in y? 如果可以的话,我宁愿不使用索引。

注意

freespace回答了我的实际问题,这就是为什么我接受了答案,但SilentGhost回答了我应该问的问题。

抱歉的混淆。


for x in y[:-1]

如果y是一个生成器,那么以上将不起作用。


将序列项目与以下内容进行比较的最简单方法:

for i, j in zip(a, a[1:]):
     # compare i (the current) to j (the following)

如果你想获得序列对中的所有元素,使用这种方法(成对函数来自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])):
链接地址: http://www.djcxy.com/p/53471.html

上一篇: How to loop through all but the last item of a list?

下一篇: python irc bot ping answer