很抱歉这么简单;我在别处找过,但没有人指出这个具体问题。我想学习python的方式,使我的代码紧凑!因此,为此,我尝试使用一行(即短)循环,而不是多行循环,特别是for循环。当我试图在单行循环中使用一行if和else时,问题就出现了。只是好像没用。例如,请考虑以下内容:
numbers = ... # an arbitrary array of integer numbers
over_30 = [number if number > 30 for number in numbers]
这是有问题的,因为
one-line if
确实需要
else
跟着它。即使,当我加上
其他的
到上面的脚本(之后
if
):
over_30 = [number if number > 30 else continue for number in numbers]
,它变成了另一个蟒蛇般的错误。
我知道问题实际上是一行if和else,因为python需要标识一个应该分配给lefthand操作符的值。但是,对于上述模式的特定用例是否有解决方法?