2013-04-03 110 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

我相信有很多方法可以實現我的目標,但是我還沒有達到目標。感謝您的迴應。 –

相關問題