在Python 3.x中对1个elif块的(false)评估与对下一个elif块的评估之间,有什么方法可以执行语句?
我希望仅在if块的前2条语句评估为false的情况下,通过仅运行函数“ word_in_special_list”来优化程序。
理想情况下,程序应如下所示:
for word in lis:
#Finds word in list
if word_in_first_list(word):
score += 1
elif word_in_second_list(word):
score -= 1
#Since the first 2 evaluations return false, the following statement is now run
a, b = word_in_special_list(word)
#This returns a Boolean value, and an associated score if it's in the special list
#It is executed only if the word isn't in the other 2 lists,
#and executed before the next elif
elif a:
score += b #Add b to the running score
else:
...other things...
#end if
#end for
当然,将元组放入elif评估中会返回错误。我也无法重组if语句,因为该词很有可能位于第一或第二个列表中,因此这种结构节省了时间。那么,有没有办法在两次elif评估之间运行代码块?
最佳答案
您必须制作一个else
案例,然后在其中嵌套
for word in lis:
if word_in_first_list(word):
score += 1
elif word_in_second_list(word):
score -= 1
else:
a, b = word_in_special_list(word)
if a:
score += b #Add b to the running score
else:
...other things...
关于python - 在两个Elif块之间执行语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32161730/