lst = map(lambda x: 2*x if x>3,[1,2,3,4,5]) 为什么报语法错误
注意:语句级 的 if
, 表达式 的 if
在 表达式上下文中,比如 lambda
、列表推导式
、赋值语句的右侧
,用的是 条件表达式,格式必须是,最后都是返回一个列表
value_if_true if condition else value_if_false
result = 2 * x if x > 3 else x # 必须写 else
lambda x: 2*x if x>3 是表达式上下文,必须用
else
,否则会报语法错误。
语句级 if
(可以没有 else
):
else
:if x > 3:
print(x)