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 相关文章推荐
django session完成状态保持的方法
Nov 27 Python
PyQt4编程之让状态栏显示信息的方法
Jun 18 Python
python各类经纬度转换的实例代码
Aug 08 Python
python虚拟环境的安装和配置(virtualenv,virtualenvwrapper)
Aug 09 Python
在python中计算ssim的方法(与Matlab结果一致)
Dec 19 Python
Python 列表的清空方式
Jan 13 Python
django在保存图像的同时压缩图像示例代码详解
Feb 11 Python
django表单中的按钮获取数据的实例分析
Jul 31 Python
详解Python 中的容器 collections
Aug 17 Python
通过代码实例了解Python sys模块
Sep 14 Python
Python私有属性私有方法应用实例解析
Sep 15 Python
python爬取音频下载的示例代码
Oct 19 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
服务器端解压缩zip的脚本
2006/12/22 PHP
PHP入门速成教程
2007/03/19 PHP
php数据库配置文件一般做法分享
2012/07/07 PHP
CI框架在CLI下执行占用内存过大问题的解决方法
2014/06/17 PHP
PHP中浮点数计算比较及取整不准确的解决方法
2015/01/09 PHP
CentOS7编译安装php7.1的教程详解
2019/04/18 PHP
jQuery学习2 选择器的使用说明
2010/02/07 Javascript
Raphael带文本标签可拖动的图形实现代码
2013/02/20 Javascript
JavaScript包装对象使用介绍
2013/08/29 Javascript
22点关于jquery性能优化的建议
2014/05/28 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
2014/06/16 Javascript
javascript中Array数组的迭代方法实例分析
2015/02/04 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
Bootstrap中datetimepicker使用小结
2016/12/28 Javascript
js + css实现标签内容切换功能(实例讲解)
2017/10/09 Javascript
从零开始搭建vue移动端项目到上线的步骤
2018/10/15 Javascript
Vuex 使用 v-model 配合 state的方法
2018/11/13 Javascript
JavaScript&quot;模拟事件&quot;的注意要点详解
2019/02/13 Javascript
优雅的使用javascript递归画一棵结构树示例代码
2019/09/22 Javascript
Nodejs封装类似express框架的路由实例详解
2020/01/05 NodeJs
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
[58:09]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第三场 6.2
2018/06/03 DOTA
简单文件操作python 修改文件指定行的方法
2013/05/15 Python
Python enumerate函数功能与用法示例
2019/03/01 Python
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
python切片(获取一个子列表(数组))详解
2019/08/09 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
老海军美国官网:Old Navy
2016/09/05 全球购物
lookfantastic荷兰:在线购买奢华护肤、护发和化妆品
2018/11/27 全球购物
美国名牌香水折扣网站:Hottperfume
2021/02/10 全球购物
大学生毕业求职的自我评价
2013/09/29 职场文书
党员个人思想汇报
2013/12/28 职场文书
《李时珍夜宿古寺》教学反思
2014/04/09 职场文书
大学生求职信
2014/06/17 职场文书
解决Nginx 配置 proxy_pass 后 返回404问题
2021/03/31 Servers