我有一个 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]