课程
/后端开发
/Python
/python进阶
print filter(lambda s:s if len(s.strip())>0, ['test', None, '', 'str', ' ', 'END'])
2018-07-31
源自:python进阶 2-10
正在回答
美女,正解。。
不能用if。lambda函数后面是参数,然后是冒号,然后是返回值。你用了if就相当于 return if ...,这肯定不对啊。正确的方式是使用逻辑与运算: s and (len(s.strip()) > 0)
慕村2229932
liujlb 回复 慕村2229932
有同样疑问
lambda只能有参数入口和返回表达式组成,你这个明显报错了啊。lambda s:s if len(s.strip())>0 就等于
def f(s):
return s if len(s.strip())>0
这肯定编译不过去的呀。
慕课提供的这个编译器不知道怎么回事,有时候写的明明对着了就是不能通过。你换个别的编译器试试
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计