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中使用ConfigParser解析ini配置文件实例
Aug 30 Python
python刷投票的脚本实现代码
Nov 08 Python
在java中如何定义一个抽象属性示例详解
Aug 18 Python
Python用 KNN 进行验证码识别的实现方法
Feb 06 Python
Python+Pandas 获取数据库并加入DataFrame的实例
Jul 25 Python
python使用numpy读取、保存txt数据的实例
Oct 14 Python
用Python获取摄像头并实时控制人脸的实现示例
Jul 11 Python
Python符号计算之实现函数极限的方法
Jul 15 Python
Pytorch卷积层手动初始化权值的实例
Aug 17 Python
python中常用的数据结构介绍
Jan 12 Python
浅析python连接数据库的重要事项
Feb 22 Python
只需要100行Python代码就可以实现的贪吃蛇小游戏
May 27 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:从零开始的异世界生活》第二季延期至7月播出
2020/05/06 日漫
详解PHP实现异步调用的4种方法
2016/03/14 PHP
php 判断IP为有效IP地址的方法
2018/01/28 PHP
Laravel5.7 数据库操作迁移的实现方法
2019/04/12 PHP
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
2011/01/11 Javascript
select标签模拟/美化方法采用JS外挂式插件
2013/04/01 Javascript
javascript制作网页图片上实现下雨效果
2015/02/26 Javascript
在Node.js应用中读写Redis数据库的简单方法
2015/06/30 Javascript
JavaScript中利用各种循环进行遍历的方式总结
2015/11/10 Javascript
JS奇技之利用scroll来监听resize详解
2017/06/15 Javascript
JS去除字符串最后的逗号实例分析【四种方法】
2019/06/20 Javascript
js实现类选择器和name属性选择器的示例步骤
2021/02/07 Javascript
Python调用C# Com dll组件实战教程
2017/10/12 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
2018/01/24 Python
详解Python判定IP地址合法性的三种方法
2018/03/06 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
2018/06/14 Python
python3.6生成器yield用法实例分析
2019/08/23 Python
Python 如何提高元组的可读性
2019/08/26 Python
Python单链表原理与实现方法详解
2020/02/22 Python
python 三种方法实现对Excel表格的读写
2020/11/19 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
详解CSS3的opacity属性设置透明效果的用法
2016/05/09 HTML / CSS
HTML5公共页面提取作为公用代码的方法
2020/06/30 HTML / CSS
迪卡侬荷兰官网:Decathlon荷兰
2017/10/29 全球购物
Chinti & Parker官网:奢华羊绒女装和创新针织设计
2021/01/01 全球购物
几个Linux面试题笔试题
2012/12/01 面试题
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
“四风”问题整改措施和努力方向
2014/09/20 职场文书
房屋出售授权委托书
2014/10/12 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
公安纪律作风整顿心得体会
2016/01/23 职场文书
python自动化调用百度api解决验证码
2021/04/13 Python
解决Vue+SpringBoot+Shiro跨域问题
2021/06/09 Vue.js
Win11怎么进入安全模式?Windows 11进入安全模式的方法
2021/11/21 数码科技
搞笑Gif:这么白这么长的腿像极了一楼的女朋友
2022/03/21 杂记
Tomcat弱口令复现及利用
2022/05/06 Servers