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
>>>