2013-04-03 74 views
0

我找不到任何(对于初学者)可读的信息。是否有可能对最后一个项目的事件在for循环中:Python for循环中最后一项的事件处理程序

array = ["foo", "bar", "john", "test"] 
for item in array: 
    print item 
LastItemEvent: forLoop + lastItem 
def lastItem: 
    # call another function 
    doneWithLoop() 

还是需要有一个递增的整数计算等?可怕的例子,但我希望你们明白。

+0

你是说你想在循环之前调用最后一个项目上的事件吗? – jamylak

回答

1

您可以使用else语句我猜:

for x in range(10): 
    print x 
else: 
    print x**2 

从Python文档:

当项目耗尽时(即当序列 为空时),将执行else子句中的套件(如果存在),并且循环终止。

+0

这样做的好处是你可以知道'for'循环是否成功运行(没有休息)。但这是非常类似于循环后面添加另一行,这听起来太简单,不能保证这个问题,但我可能是错误的 – jamylak

+0

@jamylak实际上我无法找到为什么要使用'其他'的原因 - 我把答案放在这里以便为OP提供和选择。 –

+0

谢谢Artsiom,这就是我要找的。 –

1

item是由循环结束的最后一个元素,因为它需要在阵列的每个值(名单真的),因此一旦完成,将被设置为最后一个。

array = ["foo", "bar", "john", "test"] 
for item in array: 
    print item 

print "last item", item 
+0

嗯,我的坏。印刷是一个不好的例子。我想做一整个其他的行动,不涉及物品的价值。 –

+1

@MartijnNosyncerror你不想要它的价值?你想要什么? – jamylak

+0

我正在使用循环来继续调用一个函数,但是在它的最后一个循环中,它需要它来做一些其他的事情。我希望我能更多地澄清它。 –

0

我猜你正在做一些奇怪的事情,如果你解释你真正想做的事情,会有更好的解决方案。但是,如果你真的想这样做你问什么,你可以遍历所有元素,但最后一:

for item in array[:-1]: 
    do_something(item) 

而在这之后,你当然可以做somethind其他与最后一个元素:

do_something_else(array[-1]) 
+0

我相信有很多方法可以实现我的目标,但是我还没有达到目标。感谢您的回应。 –

相关问题