在没有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
循环之前有if
和else
。
for
答案 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]