如何在单行中使用 "continue" if else 在 for 循环中

How to use "continue" in single line if esle within a for loop

我有一个 for 循环,其中有一个简单的单行 if 条件。 我想在 else 部分使用 continue 选项。

这不起作用:

def defA() : 
    return "yes"
flag = False
for x in range(4) : 
    value = defA() if flag else continue
                              ^
SyntaxError: invalid syntax

工作代码:

for x in range(4) : 
    if flag : 
        defA()
    else : 
        continue

Python 对控制结构使用缩进。 python.

无法执行您想执行的操作

Python中没有单行if条件。您在第一个示例中拥有的是 ternary expression

您正在尝试将 continue 分配给名为 value 的变量,这没有任何意义,因此出现语法错误。

你能解释一下吗,因为你想要达到的目标可能是专家可以建议你一个更好的选择。对我来说,在此处添加 else 没有任何意义,因为您只是将 else 添加到继续,这在任何情况下都会发生如果条件。

无论如何,如果我没猜错的话,你要找的是list comprehension。这是一个如何使用它的工作示例,

def defA() :
    return "yes"

flag = True

value = [defA() if flag else 'No' for x in range(4)]  #If you need to use else
value = [defA() for x in range(4) if flag]            #If there is no need for else