Python ';对于';在'内循环;如果';(这继续是&"x27;elif&"x27;)声明
我有一个if、elif和else语句块。if语句比较列表中的项目,然后使用找到的项目执行操作。elif和else对列表没有任何作用,因此我不认为将所有内容都放在for循环中有什么意义Python ';对于';在'内循环;如果';(这继续是&"x27;elif&"x27;)声明,python,loops,Python,Loops,我有一个if、elif和else语句块。if语句比较列表中的项目,然后使用找到的项目执行操作。elif和else对列表没有任何作用,因此我不认为将所有内容都放在for循环中有什么意义 if myText.count(myItem for myItem in myList): doSomething using myText and myItem elif otherThing1: doStuff elif otherThing2: doOther stuff else:
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
当然,我在第一行中遇到了一个错误,但是有没有一种python方法可以在不必重新构造整个代码的情况下获得我要查找的内容?如果您只是想测试列表中是否有项目,那么一种简单的方法是:
if item in list:
do something
你的话:“我正在尝试查看str列表中的str是否位于更大的str(myText)中,然后同时处理myItem和myText。我只希望在if语句遍历myList的所有项之后执行“else”位,但没有找到任何内容。” 我真的不确定你想做什么elifs?您正在查找较大字符串中的子字符串。它将评估为真或假。为什么需要4个逻辑语句
您必须意识到,如果将if/else语句放在循环中,那么每次循环运行时,它都会执行计算结果为True或False的操作不清楚您想在缩进块中对
myItem
执行什么操作。在上面的示例中,myItem
是生成器表达式的一部分,在该表达式之外没有任何意义(或值)。如果myText
的类型为str
,则myList中myItem的myItem
最好返回一个字符串。。。它没有,因为它返回一个生成器。你到底在寻找什么?你能描述一下你真正想做什么而不是试图做什么吗?很抱歉,我不清楚,myItem是str类型。我想看看str列表中的str是否在更大的str(myText)中,然后用myItem和myText做一些事情。这并不能描述你正在尝试做什么。你想做什么?我已经知道列表中的项目将是str类型,我只需要在更大的str中找到该项目时才需要对该项目进行处理。起初,问题是elifs,否则在列表中循环时会执行多次,我只希望它们在整个列表循环之后执行一次,什么也不做。我只希望在if语句遍历myList的所有项之后执行“else”位,但没有找到任何内容。是的,找到了,但我最终使用了for..else方法。@rasonage动作不错!在python中,我完全忘记了在for循环之后加上else。:)这正是你想要使用它的时候。
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
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