2015-01-21 143 views
-1

返回for循環我有這樣如何使用與功能蟒蛇

def get(l): 
    if l.a == 8 : 
     return "foo" 
    if l.a == 9 : 
     return "bar" 

功能現在我有一個循環

for l in mylist: 
    value = get(l) 
return value 

我想,對於循環應該退出,如果我的函數返回的東西如果它沒有,那麼它應該繼續下一個循環項目,直到我的函數返回一些東西。

我能做到這一點,如果我把我的功能邏輯的循環,但我不想這樣做,

+0

如果函數不會返回任何東西(即應該發生什麼後做別的。只是'沒有')爲每個項目? – 2015-01-21 02:41:16

+0

爲什麼這個問題有'django'標記,它是相關的嗎? – dazedconfused 2015-01-21 02:48:37

回答

3

l是一個可變的一個糟糕的選擇,因爲它看起來在某些字體中與1類似。我把它改成item這裏

for item in mylist: 
    value = get(item) 
    if value is not None 
     break 
# ... can do other stuff with value here 
return value 

甚至

for item in mylist: 
    value = get(item) 
    if value is not None: 
     return value 

,如果你不需要循環

0

嘗試:

for l in mylist: 
    value = get(l) 
    if value is not None: 
     return value 
    else: 
     continue 
+0

不應該需要'return'和'break':只要'return'就可以。有人可能會說'else:continue'是多餘的,但我不介意,因爲它是明確的。 – jme 2015-01-21 02:37:54

+0

我更喜歡將'else:continue'包含在新學習者的追蹤能力中。只是我認爲是有幫助的。 – 2015-01-21 02:39:23

+0

我同意,我不贊成或反對,真的。我想我正在期待別人的批評:)。 – jme 2015-01-21 02:40:10