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 相关文章推荐
Python3实现带附件的定时发送邮件功能
Dec 22 Python
Django项目中model的数据处理以及页面交互方法
May 30 Python
numpy数组之存取文件的实现示例
May 24 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
Jan 03 Python
从训练好的tensorflow模型中打印训练变量实例
Jan 20 Python
设置jupyter中DataFrame的显示限制方式
Apr 12 Python
python代码如何注释
Jun 01 Python
Python3通过chmod修改目录或文件权限的方法示例
Jun 08 Python
Python 把两层列表展开平铺成一层(5种实现方式)
Apr 07 Python
anaconda python3.8安装后降级
Jun 11 Python
Python requests用法和django后台处理详解
Mar 19 Python
python中pd.cut()与pd.qcut()的对比及示例
Jun 16 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
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
2006/10/09 PHP
PHP取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
PHP中cookie和session的区别实例分析
2014/08/28 PHP
网站防止被刷票的一些思路与方法
2015/01/08 PHP
php动态绑定变量的用法
2015/06/16 PHP
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
心扬JS分页函数代码
2010/09/10 Javascript
使用基于jquery的gamequery插件做JS乒乓球游戏
2011/07/31 Javascript
JavaScript实现拼音排序的方法
2012/11/20 Javascript
js获取上传文件大小示例代码
2014/04/10 Javascript
判断及设置浏览器全屏模式
2014/04/20 Javascript
JavaScript中的splice()方法使用详解
2015/06/09 Javascript
在Python中使用glob模块查找文件路径的方法
2015/06/17 Javascript
javascript实现unicode与ASCII相互转换的方法
2015/12/10 Javascript
jQuery、zepto、js常用小技巧
2017/02/12 Javascript
JavaScript实现经纬度转换成地址功能
2017/03/28 Javascript
详解nodejs微信公众号开发——5.素材管理接口
2017/04/11 NodeJs
JavaScript正则表达式的贪婪匹配和非贪婪匹配
2017/09/05 Javascript
Vue2.0父组件与子组件之间的事件发射与接收实例代码
2017/09/19 Javascript
用jquery获取select标签中选中的option值及文本的示例
2018/01/25 jQuery
elementUI select组件默认选中效果实现的方法
2019/03/25 Javascript
layer设置maxWidth及maxHeight解决方案
2019/07/26 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
2020/03/02 Javascript
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
[01:04:39]OG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python入门篇之列表和元组
2014/10/17 Python
python 实现A*算法的示例代码
2018/08/13 Python
python实现生成Word、docx文件的方法分析
2019/08/30 Python
ORLY官网:美国专业美甲一线品牌
2019/12/11 全球购物
设计模式的基本要素是什么
2014/04/21 面试题
人力资源职位说明书
2014/07/29 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
如何把新闻人物写得立体、鲜活?
2019/08/14 职场文书
Canvas三种动态画圆实现方法说明(小结)
2021/04/16 Javascript
Python基础之进程详解
2021/05/21 Python
如何利用pygame实现打飞机小游戏
2021/05/30 Python