如何在单行中使用"continue"(如果在 for 循环中)



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

这不起作用:

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 中没有单行 if 条件这样的东西。您在第一个示例中拥有的是三元表达式。

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

是的,您可以在一行中继续语句,如下所示。如果您遇到问题,请告诉我

for i in range(1, 5):
if i == 2: continue
print(i)
for x in range(4) : 
if not flag: continue
defA()

这就是我会这样做的。我喜欢这种保护子句样式模式,这样读者就知道如果没有标志,下面还有其他逻辑需要担心,并且避免了额外的缩进。

您能否解释一下,因为您要实现的目标可能是专家可以建议您更好的选择。对我来说,在这里添加其他内容是没有意义的,因为您只是在继续添加其他内容,这在任何情况下都会在 if 条件之后发生。

无论如何,如果我做对了,你正在寻找的是列表理解。这是一个如何使用它的工作示例,

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

Python 对控制结构使用缩进。 你想做的事情在python中是不可能的。

这对我有用:

array = [1,2,3,4,5]
filtered_array = [x for x in array if x > 3]

相关内容

最新更新