Python 中的lambda函数介绍


Posted in Python onOctober 10, 2018

Lambda函数,即Lambda 表达式(lambda expression),是一个匿名函数(不存在函数名的函数),Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction)。

一、lambda函数也叫匿名函数,即,函数没有具体的名称。先来看一个最简单例子:

def f(x):
return x**2
print f(4)

Python中使用lambda的话,写成这样

g = lambda x : x**2
print g(4)

二、lambda和普通的函数相比,就是省去了函数名称而已,同时这样的匿名函数,又不能共享在别的地方调用。

其实说的没错,lambda在Python这种动态的语言中确实没有起到什么惊天动地的作用,因为有很多别的方法能够代替lambda。

1. 使用Python写一些执行脚本时,使用lambda可以省去定义函数的过程,让代码更加精简。

2. 对于一些抽象的,不会别的地方再复用的函数,有时候给函数起个名字也是个难题,使用lambda不需要考虑命名的问题。

3. 使用lambda在某些时候让代码更容易理解。

lambda基础

lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值。lambda语句构建的其实是一个函数对象,见证一下:

>>> 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

在对象遍历处理方面,其实Python的for..in..if语法已经很强大,并且在易读上胜过了lambda。

defaultdict是字典类型,可以为defaultdict设置默认值,可以通过lambda设置默认值。

下面举几个例子:

from collections import *             
x = defaultdict(lambda:0) //默认值是0
print x[0]
y =defaultdict(lambda:defaultdict(lambda:0))//默认值是一个字典,字典的默认值是0
print y[0]
z = defaultdict(lambda:[0,0,0])//默认值是一个列表,[0,0,0].
print z[0]

输出结果:

0
defaultdict(<function <lambda> at0x7f097797af50>, {})
[0, 0, 0]

总结

以上所述是小编给大家介绍的Python lambda函数,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
深入解析Python中的WSGI接口
May 11 Python
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
Mar 30 Python
在Python的Flask中使用WTForms表单框架的基础教程
Jun 07 Python
详解Python各大聊天系统的屏蔽脏话功能原理
Dec 01 Python
Python正则表达式非贪婪、多行匹配功能示例
Aug 08 Python
django session完成状态保持的方法
Nov 27 Python
简单了解python变量的作用域
Jul 30 Python
利用Python校准本地时间的方法教程
Oct 31 Python
python实现两个一维列表合并成一个二维列表
Dec 02 Python
Django启动时找不到mysqlclient问题解决方案
Nov 11 Python
pandas统计重复值次数的方法实现
Feb 20 Python
用python自动生成日历
Apr 24 Python
django项目搭建与Session使用详解
Oct 10 #Python
Python 变量类型详解
Oct 10 #Python
Python中几种属性访问的区别与用法详解
Oct 10 #Python
Python的argparse库使用详解
Oct 09 #Python
详解Python3中的迭代器和生成器及其区别
Oct 09 #Python
不知道这5种下划线的含义,你就不算真的会Python!
Oct 09 #Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
Oct 09 #Python
You might like
《Re:从零开始的异世界生活 冰结之绊》
2020/04/09 日漫
Array of country list in PHP with Zend Framework
2011/10/17 PHP
php empty() 检查一个变量是否为空
2011/11/10 PHP
php中计算程序运行时间的类代码
2012/11/03 PHP
PHP实现删除字符串中任何字符的函数
2015/08/11 PHP
Yii2.0中的COOKIE和SESSION用法
2016/08/12 PHP
php批量删除操作(数据访问)
2017/05/23 PHP
php设计模式之工厂模式用法经典实例分析
2019/09/20 PHP
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
2010/05/31 Javascript
javascript parseInt() 函数的进制转换注意细节
2013/01/08 Javascript
AngularJS教程之简单应用程序示例
2016/08/16 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
vue.js国际化 vue-i18n插件的使用详解
2017/07/07 Javascript
JS实现点击Radio动态更新table数据
2017/07/18 Javascript
基于three.js编写的一个项目类示例代码
2018/01/05 Javascript
微信小程序使用wxParse解析html的实现示例
2018/08/30 Javascript
记一次webapck4 配置文件无效的解决历程
2018/09/19 Javascript
vue 属性拦截实现双向绑定的实例代码
2018/10/24 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
从0到1搭建element后台框架优化篇(打包优化)
2019/05/12 Javascript
Nodejs实现WebSocket代码实例
2020/05/19 NodeJs
[01:35]辉夜杯战队访谈宣传片—LGD
2015/12/25 DOTA
Python的for和break循环结构中使用else语句的技巧
2016/05/24 Python
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
django的ORM操作 增加和查询
2019/07/26 Python
Python绘制组合图的示例
2020/09/18 Python
如何编写python的daemon程序
2021/01/07 Python
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
2017/10/16 HTML / CSS
花卉与景观设计系大学生求职信
2013/10/01 职场文书
党员承诺书内容
2014/03/26 职场文书
党员十八大心得体会
2014/09/12 职场文书
2015选调生工作总结
2015/07/24 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
办公室规章制度范本
2015/08/04 职场文书
MySQL主从复制断开的常用修复方法
2021/04/07 MySQL