lambda匿名函数

1.python中的匿名函数的格式

lambda  arg1,arg2...,argN:expression    (lambda关键字后,冒号":"前是参数,多个参数用逗号","隔开,没有参数也要写上冒号":",冒号后是返回值)

它不像 def 声明的函数那样有固定的函数名称,也没有return声明的返回值。而是是用一个lambda表达式的形式,声明了一个函数对象。声明时既没有保存也没有调用它,随时都会被回收。当需要用到它时,再将它赋值给一个变量调用。如下:

print lambda x,y:x*10+y

s = lambda x,y:x*10+y
                   
 print  s(1,2)

执行结果:<function <lambda> at 0x02E3D7B0>           lambda本身的返回值是一个函数对象

12

2.lambda函数和def函数的区    

2.1 python lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符,而def则会把函数对象赋值给一个变量即函数名。

2.2 lambda它只是一个表达式,而def则是一个语句。lambda表达式运行起来像一个函数,当被调用时创建一个框架对象。

3.lambda函数的用途和好处

3.1 对于简单的单行函数,使用lambda可以省去定义函数的过程,让代码更加精简。

3.2 在非多次调用的函数的情况下,lambda表达式即用既得,能提高性能。

3.3 lambda函数没有函数名,所以不用担心函数名冲突

但总的来说,python对于lamdba函数的支持比较有限,lambda函数个人感觉没有什么太大或优点特别明显的用处。

但总的来说,

上一篇:java中Integer与int装箱拆箱一点收获


下一篇:数据挖掘十大经典算法[0]-K-Means算法