Python for循环 - 跳到最后一个元素

时间:2013-12-25 10:13:25

标签: python for-loop

我们如何跳到python中的最后一个元素?

ITS现在清楚!!!!!!!!!!!!

所以例如我有一个列表

foo = ['hello', 'world','how']

而且,我有这个循环

for i in foo:
    ----------Codes to skip to last element.--------

因此,变量'i'成为foo中的最后一个元素,即'how'。

    if i == 'how':
       print 'success!'

是的,我想知道在for循环中是否有任何方法可以这样做,而不是在外面。

我找到的最接近的是:

Python skipping last element in while iterating a list using for loop

请在解释中添加有关其工作原理的答案。

编辑:此外,如果不可能,请解释原因(可选)。

3 个答案:

答案 0 :(得分:2)

您不必在整个列表上运行:

foo = ['hello', 'world','how']

for i in foo[:-1]:
    ........

您还可以通过以下方式识别它是否是最后一个:

foo = ['hello', 'world','how']

for i in foo:
    if i == foo[-1]:
        print "I'm the last.."

有关列表的详细信息,请参阅Docs

你有一个非常好的教程here

答案 1 :(得分:1)

跳过最后一个元素的另一种方法

>>> for index, item in enumerate(foo):
        if index==(len(foo)-1):
            # last element 
        else:
            # Do something

答案 2 :(得分:1)

我的理解是你要检查你是否在没有中断的情况下到达周期的末尾。 Python具有漂亮的 for ... else while..else 构造。 在循环完成时使用else子句而不会中断 这样代码的骨架就是:

for word in foo:
   ... you may break out
else:
    print success

简单而优雅(也更高效)

修改 好的,现在我得到了你想要的东西。您可以使用切片 - 如建议的那样,但 itertools islice 将更好地完成工作:

from itertools import islice:
for word in islice(foo, len(foo)-1):