如果在for循环中使用esle,如何在单行中使用“continue”

2024-04-20 03:26:42 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Tags: infalseforreturnifdef选项range
3条回答

Python中没有单行if条件。在第一个示例中,您使用的是ternary expression。你知道吗

您试图将continue赋值给名为value的变量,这没有任何意义,因此出现语法错误。你知道吗

Python使用indent作为控制结构。在python中您想做的是不可能的。你知道吗

你能解释一下你想要达到的目标吗?专家可以给你一个更好的选择。对我来说,在这里添加else是没有意义的,因为您只添加else继续,这在if条件之后的任何情况下都会发生。你知道吗

不管怎样,如果我做对了,你要找的是一个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

相关问题 更多 >