lambda表达式pythonlist_python lambda表达式简单用法【转】「建议收藏」
1、lambda是什么?
看个例子:
g = lambda x:x+1
看一下执行的结果:
g(1)
>>>2
g(2)
>>>3
当然,你也可以这样使用:
lambda x:x+1(1)
>>>2
可以这样认为,lambda作为一个表达式,定义了一个匿名函数,上例的代码x为入口参数,x+1为函数体,用函数来表示为:
1 def g(x):
2 return x+1
非常容易理解,在这里lambda简化了函数定义的书写形式。是代码更为简洁,但是使用函数的定义方式更为直观,易理解。
Python中,也有几个定义好的全局函数方便使用的,filter, map, reduce
>>> foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
>>>
>>> print filter(lambda x: x % 3 == 0, foo)
[18, 9, 24, 12, 27]
>>>
>>> print map(lambda x: x * 2 + 10, foo)
[14, 46, 28, 54, 44, 58, 26, 34, 64]
>>>
>>> print reduce(lambda x, y: x + y, foo)
139
上面例子中的map的作用,非常简单清晰。但是,Python是否非要使用lambda才能做到这样的简洁程度呢?在对象遍历处理方面,其实Python的for..in..if语法已经很强大,并且在易读上胜过了lambda。
比如上面map的例子,可以写成:
print [x * 2 + 10 for x in foo]
非常的简洁,易懂。
filter的例子可以写成:
print [x for x in foo if x % 3 == 0]
同样也是比lambda的方式更容易理解。
上面简要介绍了什么是lambda,下面介绍为什么使用lambda,看一个例子(来自apihelper.py):
processFunc = collapse and (lambda s: ” “.join(s.split())) or (lambda s: s)
在Visual Basic,你很有可能要创建一个函数,接受一个字符串参数和一个 collapse 参数,并使用 if 语句确定是否压缩空白,然后再返回相应的值。这种方式是低效的,因为函数可能需要处理每一种可能的情况。每次你调用它,它将不得不在给出你所想要的东西之前,判断是否要压缩空白。在 Python 中,你可以将决策逻辑拿到函数外面,而定义一个裁减过的 lambda 函数提供确切的 (唯一的) 你想要的。这种方式更为高效、更为优雅,而且很少引起那些令人讨厌 (哦,想到那些参数就头昏) 的错误。
通过此例子,我们发现,lambda的使用大量简化了代码,使代码简练清晰。但是值得注意的是,这会在一定程度上降低代码的可读性。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/180898.html原文链接:https://javaforall.cn
相关文章
- python re.compile() 详解——Python正则表达式「建议收藏」
- mac pycharm安装设置_入门python,这样操作,简单易学(安装教程)「建议收藏」
- 一个简单的Python暴力激活成功教程网站登录密码脚本「建议收藏」
- 我用python算出了同事的身份证号码!
- python编程是啥-Python编程「建议收藏」
- python实现简单爬虫功能[通俗易懂]
- python中替换字符串中字符_Python replace()函数:替换字符串中的某个字符「建议收藏」
- python教程:用简单的Python编写Web应用程序
- 基于Python 输出字符HelloWorld简单总结
- python海龟绘图画圆_Python启蒙之海龟作图「建议收藏」
- python 变量锁_python字符串前面加b
- Python udp编程_python socket udp
- lambda表达式python_Python中的Lambda表达式「建议收藏」
- python上的表白代码_用Python实现表白代码
- python程序化交易实例-用 Python 实现你的量化交易策略「建议收藏」
- python json.loads 中文_Python 的完美 json loads
- python递归函数讲解_Python递归函数实例讲解
- Python操作Excel的一些基本程序代码
- python随机生成一个简单的密码代码详解编程语言
- Python学习:6.python内置函数详解编程语言
- 用Python简化Linux指令:从繁琐变简单(python运行linux命令)
- python的paramiko模块简单应用详解编程语言
- Python运算符及用法(超级详细)
- 用Python仿写MSSQL 编程体验更有趣(python仿mssql)
- Python的lambda匿名函数的简单介绍