Python基础应用—匿名函数lambda

量化金融分析师AQF丨匿名函数并非 Python 独有的语法现象,在 MATLAB 和其他脚本语言中都有类似匿名函数的表达。Python借鉴了这种语法设置,并用一种简洁优雅的代码实现了匿名函数的表达。

以下是普通函数和匿名函数定义方式的差别及3个不同使用场合的例子:

In [1]:

# 普通函数的定义方式def func(*args, **kwards):

# expressions

return 0

In [2]:

# 匿名函数的定义方式# lambda 是标志匿名函数的关键字,其后是匿名函数的参数,冒号后是匿名函数的返回值lambda args: expressions

In [3]:

#例1#可以将匿名函数赋值给一个变量,这样可以实现对匿名函数的引用和重复使用func1 = lambda x: x + 5type(func1)

Out[3]:

function

In [4]:

# 以上匿名函数功能上等价于:def func2(x):

return x + 5# 两者的区别在于,匿名函数本身没有名字,赋值给变量的以后可以用变量名引用匿名函数func1(3), func2(3)

Out[4]:

(8, 8)

In [5]:

# 例2# 匿名函数可以有多个参数func3 = lambda x,y: x + yfunc3(3,5)

Out[5]:

8

匿名函数应用最多的场景,是作为参数直接传递给其他函数。匿名函数最初的产生就是为了快速定义一次性使用的简单函数。

In [6]:

# 例3# 匿名函数可以作为参数直接传递给其他函数from functools import reducer = [i for i in range(1,5)]print(r)# 匿名函数作为参数传递给reduce() 函数# 对reduce() 函数功能的说明,详见下一篇推送 《Pyton基础应用之map&reduce》cumprod = reduce(lambda x,y: x * y, r)cumprod

[1, 2, 3, 4]

Out[6]:

24

附上GIF动图,更直观了解Python金融实战应用,如果对此还有任何疑问,欢迎点击了解咨询~那么祝大家学习愉快~

量化金融分析师AQF交流答疑群:737550026

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181026A1CHR100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券