Python学习笔记010——匿名函数lambda

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习笔记010——匿名函数lambda相关的知识,希望对你有一定的参考价值。

1 语法

my_lambda = lambda arg1, arg2 : arg1 + arg2 + 1

arg1、arg2:参数

arg1 + arg2 + 1 :表达式

2 描述

匿名函数不需要return来返回值,表达式本身结果就是返回值。

lambda 仅简洁了代码,并不会提高程序运行效率

如果可以用 for...in...if 来完成的,最好不使用匿名函数lambda

使用lambda时,函数内不要包含循环、嵌套;如果存在,则最好使用def函数来完成,这样的代码可读性和复用性均较高

lambda用来编写简单的函数,而def用来处理更强大的任务。

3 示例

3.1 无参数的匿名函数

>>> a = lambda:5
>>> a
<function <lambda> at 0x7f20f53be2f0>
>>> a()
5
>>> 

3.2 单个参数的匿名函数

a = lambda x:x+1
print(a(2))

运行: 3

3.3 多参数的匿名函数

a = lambda x, y: x + y + 1
print(a(1,2))
print(a(y=3,x=2))

运行:

4
6

3.4 其他

1 >>> lambda x:x+1(1)
2 <function <lambda> at 0x7f20f4cfb9d8>

有的博客上说输入第一行可以直接得到结果,其实仅仅得到了匿名函数的地址(十六进制)

>>> lambda x:x+1(1)
<function <lambda> at 0x7f20f4cfb9d8>

>>> id(lambda x:x+1(1))
139779554729768
>>> hex(id(lambda x:x+1(1)))
0x7f20f4cfb9d8

如果需要获得函数值,则

>>> (lambda x:x+1)(1)
2

同样

print(lambda x:x+1(1))    # <function <lambda> at 0x7fa097b54f28>

print((lambda x:x+1)(1))   # 2

 


 

计算

(lambda x : (lambda y: (lambda z: x + y + z)(1))(2))(3)

等于多少?  6

参考python的匿名函数lambda解释及用法Python学习笔记(十二):lambda表达式与函数式编程Python lambda介绍

以上是关于Python学习笔记010——匿名函数lambda的主要内容,如果未能解决你的问题,请参考以下文章

Python学习笔记__4.3章 匿名函数(简洁函数)

Python学习笔记之三lambda表达式用法小结

python学习:函数---匿名函数 lambda

python学习三十三天函数匿名函数lambda用法

python笔记十二(匿名函数)

学习笔记36lambda是单表达式函数