python匿名函数的好处_Python中什么情况下应该使用匿名函数lambda

5458655200013d9802200220-100-100.jpg

慕慕森

lambda函数一般是在函数式编程中使用的。通常学习的C/C++/Java等等都是过程式编程,所以不常接触lambda函数。其实这货在C++中已经有所运用了,如果对stl的迭代器比较熟悉的话,就会知道里头的foreach等函数,需要给一个函数,这对于C/C++这种古老的语言来说比较痛苦,一般是在主函数外再写一个函数,然后传入函数指针,看起来非常不直观。boosts用一些特殊的语法技巧实现了C++的lambda。举个栗子,对于这样一个listL,求L中大于3的元素集合L=[1,2,3,4,5]对于过程式编程,通常会这么写L3=[]foriinL:ifi>3:L3.append(i)而对于函数式变成,只需要给filter函数一个判断函数就行了defgreater_than_3(x):returnx>3L3=filter(greater_than_3,L)由于这个判断函数非常简单,用def写起来太累赘了,所以用lambda来实现就非常简洁、易懂L3=filter(lambdax:x>3,L)这是个很简单的例子,可以看出lambda的好处。lambda函数更常用在map和reduce两个函数中。当然,lambda函数也不见得都好,它也可以被用得很复杂,比如这个问题http://segmentfault.com/q/10100000001...的答案,可以用python这样一句解决,这个lambda函数看起来那的确是挺辛苦的。fromitertoolsimportproductmap(lambdap:''.join(i+jfori,jinzip('abcd',p))+'e',product(['.',''],repeat=4))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值