python匿名函数------lambda表达式

雨点打透心脏的1/2处 2022-02-20 14:22 441阅读 0赞

1.为什么要使用lambda?

  1. 1、当我们将函数作为参数传入某个函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。
  2. 2lambda函数主要用来写一些小体量的一次性函数,避免函数名重复污染环境,同时也能简化代码。
  3. 3lambda起到了一种函数速写的作用,允许在使用的代码内嵌入一个函数的定义。他们完全是可选的(你总是能够使用def来替代它们),但是你仅需要嵌入小段可执行代码的情况下它们会带来一个更简洁的代码结构。

2.lambda语法

  1. lambda [arg1[, arg2, ... argN]]: expression

冒号前面的表示该函数的输入参数,冒号的表达式的计算结果就是该函数的返回值。

举个例子:下面的函数表示对两个序列中对应元素求和

  1. queue1 = range(10)
  2. queue2 = range(10)
  3. print map(lambda x,y : x+y

等价于

  1. def f(x,y):
  2. return x+y
  3. queue1 = range(10)
  4. queue2 = range(10)
  5. print map(f,queue1,queue2)

3. lambda表达式还可以赋给一个变量

e.g.下面的程序赋给f判断一个数是否为偶数的能力,我们可以通过类似f(1),f(2)这样的用法来使用f了

  1. f = lambda x : True if x%2==0 else False

等价于

  1. def f(x):
  2. if(x%2==0):
  3. return True
  4. else
  5. return False

测试结果

20190413225906459.png

4.lambda表达式作为函数的返回值

  1. lambda表达式可以直接作为一个函数的返回值(此时这个返回值是一个函数)
  2. def build(x, y):
  3. return lambda: x * x + y * y

比如我们执行build(3,4)得到的是一个代表3*3 + 4*4的表达式,并不是计算结果。如果需要得到计算结果,需要将该返回值作为函数再执行一次

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dvb2R4aW5faWU_size_16_color_FFFFFF_t_70

总结:

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

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

3、lambda函数拥有自己的名字空间,且不能访问自有参数列表之外或全局名字空间里的参数

4、 简单单行代码或者一次性的函数可以用lambda函数来书写,可以让代码更简洁。

5、 对于复杂函数或者函数体体量大的函数,最好不要用lambda函数,会增加代码的阅读难度,使代码晦涩难懂。

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

发表评论

表情:
评论列表 (有 0 条评论,441人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Python匿名函数lambda函数

    匿名函数lambda Python使用lambda关键字创造匿名函数。所谓匿名,意即不再使用def语句这样标准的形式定义一个函数。这种语句的目的是由于性能的原因,在调用时