Lambda函数有什么作用?极悦小编来告诉大家。
lambda函数又称匿名函数,有些情况下我们不用显式定义而采用匿名函数会让代码看上去更加简洁。
In [48]: ls = [1,2,3]
In [49]: print(list(map(lambda x:x*x, ls)))
[1, 4, 9]
上面的例子中,通过lambda函数使得我们可以在不显式定义函数的情况下为map传递了一个函数,这使得代码看上去更为简洁直观。
关键词lambda定义了一个匿名函数,冒号前面的是匿名函数的参数(当需要多个参数时,参数之间用逗号,分割),冒号后的是一个表达式,lambda函数的返回内容就是表达式的值。
lambda函数也是一个函数对象,所以也可以赋值给一个变量。
In [50]: lambda x,y:x*x+y*y
Out[50]: <function __main__.<lambda>>
In [51]: f1 = lambda x,y:x*x+y*y
In [52]: f1(1,2)
Out[52]: 5
lambda函数也作为返回值返回。
In [53]: def f():
...: x = 1
...: return lambda y:x*x+y*y # lambda函数引用了本地变量x,并且在函数f结束后保存了x的状态
...:
In [54]: m = f()
In [55]: m(2)
Out[55]: 5
In [56]: m.__closure__ # 证明m是一个闭包
Out[56]: (<cell at 0x00000132044E9E28: int object at 0x0000000051F260C0>,)
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习