'for'循环'if'(继续'elif')语句

时间:2015-04-30 00:43:31

标签: python loops

我有一块if,elif和else语句。 if语句比较列表中的项目,然后对找到的项目执行操作。 elif's和其他人没有对列表做任何事情,所以我没有看到将所有内容放在for循环中的重点。

if myText.count(myItem for myItem in myList):
    doSomething using myText and myItem
elif otherThing1:
    doStuff
elif otherThing2:
    doOther stuff
else:
    forget this, go have a drink

我在第一行遇到错误,但有没有一种Pythonic方式来获取我正在寻找的内容而无需重构我的整个代码?

3 个答案:

答案 0 :(得分:1)

如果您只是想测试一个项目是否在列表中,那么一个简单的方法就是:

if item in list:
    do something

答案 1 :(得分: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

答案 2 :(得分:0)

你的话:
“我试图查看strs列表中的str是否在更大的str(myText)中,然后使用myItem和myText执行操作。我只希望在if语句迭代后执行”else“位通过myList的所有项目并没有找到任何内容。“

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

我不确定你想要做的那些精灵?您正在寻找更大字符串中的子字符串。它将评估为真还是假。为什么需要4个逻辑语句?


你必须意识到,如果你把if / else语句放在一个循环中,那么每次循环运行时,它都要做的是评估为True或False