我有一块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方式来获取我正在寻找的内容而无需重构我的整个代码?
答案 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