Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ';对于';在'内循环;如果';(这继续是&"x27;elif&"x27;)声明_Python_Loops - Fatal编程技术网

Python ';对于';在'内循环;如果';(这继续是&"x27;elif&"x27;)声明

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、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:
    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