我有一个 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
是的,您可以在一行中继续陈述,如下所示。如果您遇到问题请告诉我
for i in range(1, 5):
if i == 2: continue
print(i)
for x in range(4) :
if not flag: continue
defA()
我就是这么做的。我喜欢这种保护子句风格的模式,这样读者就知道是否没有标志,下面还有其他逻辑需要担心,并且它避免了额外的缩进。
您能否解释一下,因为您想要实现的目标可能是专家可以建议您更好的选择。对我来说,在这里添加 else 没有意义,因为您只是添加 else 来继续,这在任何情况下都会在 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]