Python3:在for循环之前使用'if'时出现语法错误

时间:2018-03-15 09:34:22

标签: python python-3.x loops

在没有if的{​​{1}}循环之前使用for时出现语法错误,但在else出现时没有出现此类错误。

这是我的代码:

else

以下代码有效,在data=[[45, 12],[55,21],[19, -2],[104, 20]] retData= ['Close' if i>54 and j>7 for [i,j] in data] # getting a syntax error here :( return retData 循环之前有ifelse

for

2 个答案:

答案 0 :(得分:1)

您正在寻找的语法是。

data=[[45, 12],[55,21],[19, -2],[104, 20]]
retData= ['Close'  for [i,j] in data if i>54 and j>7]

如果它只是列表推导中的if条件,那么它应该在循环语法之后。

答案 1 :(得分:1)

Oups,三元运算符的Python语法之间存在混淆:

expression_if_true if condition else expression_if_false

和条件列表理解

[ expression for elt in list if condition ]

第二个代码是无条件列表推导(if之后没有for),其中表达式包含三元运算符。

在第一个代码中,您没有其他条件,因此您必须使用条件列表解析,其中if 在for上执行并放在if:

之后
retData= ['Close' for [i,j] in data if i>54 and j>7]