python3.x 匿名函数lambda

#匿名函数
lambda 参数: 表达式
关键字 lambda 说明它是一个匿名函数,冒号 : 前面的变量是该匿名函数的参数,冒号后面是函数的返回值,注意这里不需使用 return 关键字。

  • ambda只是一个表达式,函数体比def简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
  • lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
  • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

例子:对比cpp来说很简单了

list_str=['test', None, '', 'str', ' ', 'END']

data = filter(lambda str:str and len(str.strip())>0, list_str)
print('data: ', data, 'list(data): ',list(data))
#为什么filter输出是字符串list

map_data=map(lambda str:str and len(str.strip())>0, list_str)
print('map_data:', map_data, 'list(map_data): ', list(map_data))
#为什么map这边则是bool类型的list

不过上述存在未知,为什么map返回的不是str还是bool类型的list

猜你喜欢

转载自www.cnblogs.com/liuruoqian/p/11309639.html