前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >带你了解python 匿名函数 lambda

带你了解python 匿名函数 lambda

作者头像
叶子陪你玩
发布2020-03-12 15:24:51
6140
发布2020-03-12 15:24:51
举报
匿名函数,直白点说也就是没有名字的函数。有名字的函数我们都见过。一般常见的函数:
代码语言:javascript
复制
#定义函数
def sum(a,b):
    return a+b

#调用
sum(3,5)
# 打印结果
print(sum(3, 5))  # 结果:8

用匿名函数怎样来实现同样的效果呢?

代码语言:javascript
复制
# 创建函数
lambda a, b: a+b
# 传入参数运算
(lambda a, b: a+b)(3, 5)
# 打印结果
print((lambda a, b: a+b)(3, 5)) #结果:8

打印看一下,显示都是函数,一个是叫sum的函数,另外一个就是lambda的匿名函数。

匿名函数如果赋值给一个变量,那么这个变量就可以当做函数调用了。这样就变成了之前定义的函数了。

那如何给匿名函数传递带有默认值的参数呢

看完上面的介绍之后,有没有觉得对匿名函数很亲切了。

知道匿名函数有什么用呢,看上去好像更麻烦了,没有之前的定义函数的方式好理解。

既然存在这样的一个匿名函数,肯定是有它的一个用途的。那什么时候用匿名函数呢?

例子:

有一个liststr = ["1", "2", "3", "4", "5", "6"]列表,需要把它变成listint = [1,4,9,16,25,36]。

代码语言:javascript
复制
#方法-1
list_str = ["1", "2", "3", "4", "5", "6"]
list_int = []
for i in list_str:
    item = int(i)*int(i)
    list_int.append(item)
print(list_int)
代码语言:javascript
复制
# 方法-2
list_str = ["1", "2", "3", "4", "5", "6"]
list_int = list(map(lambda x: int(x)*int(x), list_str))
print(list_int)

解释:

map()函数接收两个参数,一个是函数,一个是Iterable(可迭代对象),map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回,详细用法后面的课程会讲到。 通过对比,发现使用匿名函数非常简单,当然匿名函数的作用远非如此,下面做个简单的总结。

总结归纳:

1.当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。 2.匿名函数只有在调用时,才会创建函数对象和作用域对象。调用完后立即释放,节省内存。适合做回调函数,之后的一个计算器的案例就会有具体讲到。 3.同时用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 叶子陪你玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 总结归纳:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档