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 pandas 对series和dataframe的重置索引reindex方法
Jun 07 Python
python读取word文档,插入mysql数据库的示例代码
Nov 07 Python
python判断输入日期为第几天的实例
Nov 13 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
Jan 08 Python
Python range、enumerate和zip函数用法详解
Sep 11 Python
python 使用while写猜年龄小游戏过程解析
Oct 07 Python
Django表单提交后实现获取相同name的不同value值
May 14 Python
Django 解决model 反向引用中的related_name问题
May 19 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
Jul 03 Python
使用Python绘制台风轨迹图的示例代码
Sep 21 Python
python基于OpenCV模板匹配识别图片中的数字
Mar 31 Python
Python tensorflow卷积神经Inception V3网络结构
May 06 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
PHP获取MAC地址的函数代码
2011/09/11 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
2016/10/08 PHP
Yii框架分页实现方法详解
2017/05/20 PHP
thinkPHP5分页功能实现方法分析
2017/10/25 PHP
用PHP的反射实现委托模式的讲解
2019/03/22 PHP
JavaScript Event事件学习第一章 Event介绍
2010/02/07 Javascript
a标签的href与onclick事件的区别详解
2014/11/12 Javascript
ajax读取数据后使用jqchart显示图表的方法
2015/06/10 Javascript
js点击列表文字对应该行显示背景颜色的实现代码
2015/08/05 Javascript
Boostrap模态窗口的学习小结
2016/03/28 Javascript
JS获取鼠标相对位置的方法
2016/09/20 Javascript
Vue页面骨架屏的实现方法
2018/05/22 Javascript
在vue.js中使用JSZip实现在前端解压文件的方法
2018/09/05 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
基于vue中的scoped坑点解说
2020/09/04 Javascript
python中sys.argv参数用法实例分析
2015/05/20 Python
Python实现将Excel转换为json的方法示例
2017/08/05 Python
python中csv文件的若干读写方法小结
2018/07/04 Python
python求最大公约数和最小公倍数的简单方法
2020/02/13 Python
python try...finally...的实现方法
2020/11/25 Python
我们是伦敦女孩:WalG
2018/01/08 全球购物
UGG澳洲官网:UGG Australia
2018/04/26 全球购物
请介绍一下Ant
2016/07/22 面试题
外贸英语专业求职信范文
2013/12/25 职场文书
《郑和远航》教学反思
2014/04/16 职场文书
从严治党主题教育活动总结
2015/05/07 职场文书
校车司机安全责任书
2015/05/11 职场文书
再读《皇帝的新衣》的读后感悟!
2019/08/07 职场文书
python实现批量移动文件
2021/04/05 Python
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android
如何Tomcat中使用ipv6地址
2022/05/06 Servers