Lambda表达式
匿名函数
-lamdba函数是一种快速定义单行的最小函数,是从Lisp借用来的,可以用在任何需要函数的地方。
例子:
函数:
>>> def fun(x,y): ... return x*y ... >>> fun(23,2) 46 lambda
lambda x,y:x*y
#lambda 函数; x第一个参数,y第二个参数 ;x*y操作类型; 如果使用函数返回的对象,还需要一个接受的变量 >>> a=lambda x,y:x*y >>> a(2,3)6
优势:
使用python编写一些执行脚本时,lambda可以省去定义函数的过程,让代码更加精简。
对于抽象,不需要复用的函数,定义名称时比较困难,使用lambda不需要考虑名称的命名;
使用lambda 可以让代码更加容易理解;
lambda 基础
lambda 语句中,冒号前是参数,可以用多个,用逗号分隔,冒号右边是返回值。
lambda 语句构建的其实是一个函数对象;;
>>> lambda x,y:x*y <function <lambda> at 0x7f9bed0d3578> >>> a=lambda x,y:x*y >>> a <function <lambda> at 0x7f9bed0e58c0> >>> a(2,2) 4
lambda应用实例:
reduce 为逐次操作list里的每项,接受的参数为2个,最后返回的为一个结果
乘积 >>> l=range(1,6) >>> l [1, 2, 3, 4, 5] >>> def f(x,y): ... return x*y ... >>> reduce (f,l) #将函数f,作用于l序列 120 转换 >>> f=lambda x,y:x*y >>> reduce (f,l) 120 >>> reduce(lambda x,y:x*y,l) #l列表 120 >>>
时间: 2024-11-08 22:50:52