filter, lambda语法错误
求出100以内所有3的倍数的表达式出现了语法错误,不知道为何错误,请大佬帮忙解释一下错误原因。>>> list(filter(lambda x: x if x%3 == 0, range(1,100)))
SyntaxError: invalid syntax
下面加上else None就不报错。
>>> list(filter(lambda x: x if x%3 == 0 else None, range(1,100)))
本帖最后由 Twilight6 于 2020-9-17 12:04 编辑
因为这个是三元运算符的语法格式,需要加上 else ,基本模板:
<符合 if 条件结果> if <条件> else <不符合 if 条件结果>
你不加 else 就会导致语法错误,我们要遵循编程语言的语法
Twilight6 发表于 2020-9-17 12:02
因为这个是三元运算符的语法格式,需要加上 else ,基本模板:
谢谢大佬的解答,请问下面这个就不会报错,是因为不属于三元运算符吗
>>>
小鸟游游游 发表于 2020-9-17 12:41
谢谢大佬的解答,请问下面这个就不会报错,是因为不属于三元运算符吗
>>>
这样写是列表推导式 list(filter(lambda x:x%3 == 0, range(1,100))) 感谢楼上几位大佬的解答{:10_254:}
页:
[1]