在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/

10-12 18:18