码迷,mamicode.com
首页 > 编程语言 > 详细

python的匿名函数

时间:2018-12-10 15:39:40      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:lambda表达式   逗号   xiaomi   命名   关键字   style   tail   res   匿名   

python 使用 lambda 来创建匿名函数。
在Python中,lambda作为一个关键字,作为引入表达式的语法。想比较def函数,lambda是单一的表达式,而不是语句块!

所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。

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

语法
lambda 函数的语法只包含一个语句,lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值如下:

lambda [arg1 [,arg2,.....argn]]:expression

使用如下:

a = lambda num:num+1
print(a(1))
res = map(lambda num:str(num).zfill(2),range(1,34))
print(list(res))

对字典排序:

infors = [{"name":"小黑","age":15},{"name":"xiaoming","age":30},{"name":"小美","age":10}]

infors.sort(key=lambda x:x[age]) #根据age对字典排序

print(infors)

lambda表达式作为变量

def test(a,b,func):
    result = func(a,b)
    return result
num = test(11,22,lambda x,y:x+y)
print(num)

 

匿名函数优点

  • 使用Python写一些脚本时,使用lambda可以省去定义函数的过程,让代码更加精简。
  • 对于一些抽象的,不会被别的地方再重复使用的函数,有时候函数起个名字也是个难题,使用lambda不需要考虑命名的问题
  • 使用lambda在某些时候然后代码更容易理解

参考:https://blog.csdn.net/liveor_die/article/details/78667075

更多,请查看 https://www.cnblogs.com/123fantao/p/8194337.html

python的匿名函数

标签:lambda表达式   逗号   xiaomi   命名   关键字   style   tail   res   匿名   

原文地址:https://www.cnblogs.com/blueteer/p/10096081.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!