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)