在 2 个 elif 块之间执行语句

Execute statement between 2 elif blocks

在 Python 3.x 中,是否有任何方法可以在 1 个 elif 块的(错误)评估和下一个评估之间执行语句? 如果 if 块的前 2 个语句评估为 false,我希望仅通过 运行ning 函数 "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 求值 returns 是错误的。我也无法重组我的 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...

您可以输入 continue 语句。

for word in lis:          
    #Finds word in list
    if word_in_first_list(word):
        score += 1
        continue

    if word_in_second_list(word):
        score -= 1
        continue

    a, b = word_in_special_list(word)

    if a:
        score += b  #Add b to the running score

    else:
        ...other things...

我认为这具有您想要达到的效果。顺便说一下,我不明白你为什么需要函数 word_in_first_listif word in first_list 怎么了?