python中lambda()的用法

系统 1592 0

在C++11和C#中都有匿名函数的存在。下面看看在python中匿名函数的使用。

1.lambda只是一个表达式,函数体比def简单很多。

2.lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。

3.lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。

例1.定义一个lambda表达式,求三个数的和

            
# -*- coding: UTF-8 -*-
f = lambda x,y,z:x + y + z

print f(1,2,3)
print f(4,5,6)

输出:
6
15
          

例2.用lambda表达式求n的阶乘

            
# -*- coding: UTF-8 -*-
n = 5
print reduce(lambda x,y:x*y,range(1,n+1))

输出:120
          

4.lambda表达式也可以用在def函数中

            
# -*- coding: UTF-8 -*-

def action(x):
  return lambda y:x + y
a = action(2)
print a(22)

输出:24
          

这里定义了一个action函数,返回了一个lambda表达式。其中lambda表达式获取到了上层def作用域的变量名x的值。

a是action函数的返回值,a(22),即是调用了action返回的lambda表达式。

这里也可以把def直接写成lambda形式。如下

            
# -*- coding: UTF-8 -*-

b = lambda x:lambda y:x + y
a = b(3)
print a(2)
print (b(2))(2)

输出:
5
4
          

好了这篇文章就结束到这了,需要的朋友可以看下面的相关内容


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论