2014-01-14 166 views
0
a=[1,2,3,4] 

for i in a: 
    if someConditon: 
     print(i) 
    else: 
     loop over last element again 

我使用硒與網頁進行交互並下載pdf文檔。有時在下載過程中發生錯誤,並且文件無法保存。文件的實際保存位於for循環中,並且我希望在'如果發現爲false'的情況下再添加一個條件,以再次嘗試成功下載該條目。Python - 再循環最後一個元素

我的問題是:我怎麼告訴Python遍歷所有的相同元素再次

+4

你應該問:我該如何重試失敗的操作?因爲這是你想要達到的目標。不要立即跳出一個可能的解決方案;請參閱[什麼是XY問題?](http://meta.stackexchange.com/q/66377) –

+0

迭代是否會產生任何副作用?否則,如果當條件失敗時仍然處於循環體中,那麼您仍然有最後一個元素來做任何你喜歡的事情。 – dornhege

回答

6

有沒有辦法告訴for循環不前進迭代器,所以不是你要麼需要使用while循環並手動增加i,或在for循環體內執行任何其他循環。這裏是我將如何寫這個:

for i in a: 
    while not someCondition: 
     # do something 
    print(i) 
0

你可以使用while循環和控制何時你的索引增加。在這種情況下,如果someCondtion爲真,i只會增加。否則它會一次又一次地遍歷相同的元素。您可以添加邏輯以避免無限重複,例如在X次重試退出循環或遞增到下一個索引之後。

a=[1,2,3,4] 

while i < len(a): 
    if someCondition: 
     print a[i] 
     i += 1 
相關問題