2015-04-30 280 views
-2

我有一個if,elif和else語句塊。 if語句比較列表中的項目,然後對找到的項目進行處理。 elif和其他對列表沒有做任何事情,所以我沒有看到把它全部放在for循環中的意思。'For'循環'if'(繼續'elif')語句

我得到了課程的第一線錯誤,但有一個Python化的方式來得到什麼我正在尋找,而無需調整自己的整個代碼?

+2

目前還不清楚你想要什麼在縮進塊內使用'myItem'。在上面的例子中,'myItem'是生成器表達式的一部分,並且在該表達式之外沒有任何含義(或值)。 –

+2

如果'myText'的類型是'str',那麼myItem中myItem的myItem最好返回一個字符串......它沒有,因爲它返回一個生成器。你到底在找什麼? – TigerhawkT3

+0

您能描述一下您實際上想要做什麼,而不是嘗試[解決疑難解答](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)? – TigerhawkT3

回答

1

如果你只是想測試一個項目是否是列表中的,一個簡單的方法來做到這一點是:

if item in list: 
    do something 
+0

我已經知道列表中的項目將會是str類型,只有當該項目在更大的str中找到時,我才需要對該項目做些什麼 – rasonage

1
for myItem in myList : 
    if myItem in myText : 
     doSomething using myText and myItem 
    elif otherThing1: 
     doStuff 
    elif otherThing2: 
     doOther stuff 
    else: 
     forget this, go have a drink 
+0

我剛開始時,問題是elifs,否則會執行多次,而他們正在循環列表中,我只希望他們執行一次後,整個列表循環和沒有做。 – rasonage

0

你的話:
「我想看看strs列表裏面的str是否在更大的str(myText)裏面,然後用myItem和myText來做。我只希望在if語句遍歷myList的所有項後執行「else」位並沒有發現任何東西。「

count = 0 
for myItem in mylist: 
    if myItem in myText: 
     count += 1 
     do something with myItem and myText 
if count == 0: 
    do what you want to do when if finds nothing 

我不太確定你想要做什麼elifs?您正在查找較大字符串中的子字符串。它將評估爲真或假。爲什麼你需要4個邏輯語句?


你必須認識到,如果你把你的if/else語句在一個循環內,每一次循環運行時,它會無論是做什麼的計算結果爲真或假

+0

我只希望在if語句遍歷myList的所有項目之後執行「else」位,但沒有找到任何內容。 – rasonage

+0

@rasonage是否有效? – lciamp

+1

是的,但我最終使用了for..else方法。 – rasonage