Python3:在';如果';在for循环之前使用
如果在没有Python3:在';如果';在for循环之前使用,python,python-3.x,loops,Python,Python 3.x,Loops,如果在没有else的for循环之前使用时,我会得到一个语法错误,但是如果存在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 下面的代码起作用,在for循环之前有if和else data=[[45, 1
else
的for
循环之前使用时,我会得到一个语法错误,但是如果存在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
下面的代码起作用,在for
循环之前有if
和else
data=[[45, 12],[55,21],[19, -2],[104, 20]]
retData= ['Close' if i>54 and j>7 else 'Open' for [i,j] in data]
# No Syntax error here!!
return retData
您要查找的语法是
data=[[45, 12],[55,21],[19, -2],[104, 20]]
retData= ['Close' for [i,j] in data if i>54 and j>7]
如果列表理解中只有if
条件,那么它应该位于循环语法之后 您要查找的语法是
data=[[45, 12],[55,21],[19, -2],[104, 20]]
retData= ['Close' for [i,j] in data if i>54 and j>7]
如果列表理解中只有if
条件,那么它应该位于循环语法之后 Oups,三元运算符的Python语法之间存在混淆:
expression_if_true if condition else expression_if_false
和条件列表理解
[ expression for elt in list if condition ]
第二个代码是一个无条件列表理解(如果
的后面是,则为no),其中表达式包含一个三元运算符
在第一个代码中,没有else条件,因此必须使用条件列表理解,其中if作用于for,并置于if之后:
retData= ['Close' for [i,j] in data if i>54 and j>7]
例如,三元运算符的Python语法之间存在混淆:
expression_if_true if condition else expression_if_false
和条件列表理解
[ expression for elt in list if condition ]
第二个代码是一个无条件列表理解(如果
的后面是,则为no),其中表达式包含一个三元运算符
在第一个代码中,没有else条件,因此必须使用条件列表理解,其中if作用于for,并置于if之后:
retData= ['Close' for [i,j] in data if i>54 and j>7]
在第一种情况下,你预计会发生什么?如果不满足条件,是否要从列表中排除项目?在这种情况下,您应该使用语法[如果条件(v)中的条件(v)表示v中的某物]
。是的,如果条件不满足,则应排除列表中的项目,但问题仍然是,语法[如果条件(v)中的条件(v)表示v中的某物(v)表示v中的其他某物]
为什么工作得非常好,但是数据中v的语法[something(v)if condition(v)]
给出了一个错误?如果不满足条件,是否要从列表中排除项目?在这种情况下,您应该使用语法[如果条件(v)中的条件(v)表示v中的某物]
。是的,如果条件不满足,则应排除列表中的项目,但问题仍然是,语法[如果条件(v)中的条件(v)表示v中的某物(v)表示v中的其他某物]
为什么工作得非常好,但是数据中v的语法[something(v)if condition(v)]
给出了一个错误。