玩蛇网提供最新Python编程技术信息以及Python资源下载!
您现在的位置: 玩蛇网首页 > Python 问题解答 > 正文内容

Python匿名函数 Lambda表达式作用

Python入门佳作 经典教程的全新修订 10个项目引人入胜
玩蛇网推荐图文教程:python黑客多线程扫描器

在Python这门优美的编程语言中,支持一种有趣的语法格式(表达式),可以让我们在单行内创建一个最小的函数python lambda匿名函数

据说是借鉴了Lisp语言中lambda表达式,它可以使用在任何需要使用函数的地方,因为没有名字所以叫做匿名函数,所以不会污染python代码的命名空间。

玩蛇网斯巴达今天就来讲一讲关于Python Lambda表达式的相关知识,提示:想要精通或者深入学习了解lambda的妙用,还需要在更多实践作业中积累经验,加入自己的理解才能更好掌握。

Python Lambda表达式

python匿名函数lambda作用

在Python语言中除了def语句用来定义函数之外,还可以使用匿名函数lambda,它是Python一种生成函数对象的表达式形式。匿名函数通常是创建了可以被调用的函数,它返回了函数,而并没有将这个函数命名。lambda有时被叫做匿名函数也就是这个原因,需要一个函数,又不想动脑筋去想名字,这就是匿名函数。

#-*- coding:utf-8 -*-
#__author__ = "www.iplaypython.com"

# 普通python函数
def func(a,b,c):
    return a+b+c

print func(1,2,3)
# 返回值为6

# lambda匿名函数
f = lambda a,b,c:a+b+c

print f(1,2,3)
# 返回结果为6

# 大家注意观察上面的Python示例代码,f = lambda a,b,c:a+b+c 中的关键字lambda表示匿名函数,
# 冒号:之前的a,b,c表示它们是这个函数的参数。
# 匿名函数不需要return来返回值,表达式本身结果就是返回值。

Python匿名函数作用

lambda是一个表达式,而并非语句

因为lambda是一个表达式,所以在python语言中可以出现在def语句所不能出现的位置上;
lambda与def语句相比较,后者必须在一开始就要将新函数命名;而前者返回一个新函数,可以有选择性的赋值变量名

lambda主体只是单个表达式,并而一个代码块

lambda与普通函数function定义方法来比较它的功能更小,它只是一个为简单函数所服务的对象,而def能处理更大型的数据任务。

为什么要使用lambda?

用python学习手册中的一段话来回答这个问题非常好“lambda有起到速写函数的作用,允许在使用的代码内嵌入一个函数的定义。在仅需要嵌入一小段可执行代码的情况 下,就可以带来更简洁的代码结构。”lambda的使用在python基础知识学习中就会遇到,但真正应用时还是在python进阶的阶段,这时需要你做更深入学习。

Lambda Python 3

Python2与Python3中lambda使用没有差别,对于单行代码函数,用lambda会让代码更简洁优美,提高性能。

以上只是玩蛇网python学习与分享平台,为大家对Python Lambda表达式的作用做了一个简单的介绍,它的使用技巧和注意事项还有很多。但不要把lambda想象的很可怕,在python中你只要把它当做是个关键字,一个用来引入表达式的语法而已。除去以上的不同之处,def和lambda可以完相同的工作,它也比你想象中更容易使用。

玩蛇网文章,转载请注明出处和来源网址:http://www.iplaypython.com/wenda/lambda.html



微信公众号搜索"玩蛇网Python之家"加关注,每日最新的Python资讯、图文视频教程可以让你一手全掌握。强烈推荐关注!

微信扫描下图可直接关注

玩蛇网PythonQQ群,欢迎加入: ① 240764603 玩蛇网Python新手群
出炉日期:2016-12-02 11:55 玩蛇网 www.iplaypython.com

我要分享到:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
  • diveer_love
    2016-11-29 15:39:09发表

    就是一个语法糖,就是用来压缩冗余代码的,没有Lambda表达式也可以用别的方法来替代。

  • diveer_love
    2016-11-29 15:25:06发表

    举一个刚学习来的lambda例子 l = [foo, bar, far] map(lambda x: x.upper(), l) [FOO, BAR, FAR] filter(lambda x: f in x, l) [foo, far] map(lambda x: x.upper(), filter(lambda x:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules