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的装饰器的运用
May 05 Python
python抓取百度首页的方法
May 19 Python
深入浅析python中的多进程、多线程、协程
Jun 22 Python
Python处理JSON数据并生成条形图
Aug 05 Python
python 第三方库的安装及pip的使用详解
May 11 Python
Python中super函数的用法
Nov 17 Python
Django Rest framework之认证的实现代码
Dec 17 Python
解决Django Static内容不能加载显示的问题
Jul 28 Python
Python matplotlib生成图片背景透明的示例代码
Aug 30 Python
如何使用python进行pdf文件分割
Nov 11 Python
从训练好的tensorflow模型中打印训练变量实例
Jan 20 Python
Python使用openpyxl模块处理Excel文件
Jun 05 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 正则表达式小结
2009/08/31 PHP
解析php开发中的中文编码问题
2013/08/08 PHP
PHP使用mkdir创建多级目录的方法
2015/12/22 PHP
ie focus bug 解决方法
2009/09/03 Javascript
jQuery AjaxQueue改进步骤
2011/10/06 Javascript
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
简单js代码实现selece二级联动(推荐)
2014/02/18 Javascript
jQuery的$.proxy()应用示例介绍
2014/04/03 Javascript
JavaScript中string对象
2015/06/12 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
2015/10/24 Javascript
利用JQuery写一个简单的异步分页插件
2016/03/07 Javascript
jquery输入数字随机抽奖特效的简单实现代码
2016/06/10 Javascript
AngularJS表单详解及示例代码
2016/08/17 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
AngularJS实现图片上传和预览功能的方法分析
2017/11/08 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
axios的拦截请求与响应方法
2018/08/11 Javascript
JavaScript中0、空字符串、'0'是true还是false的知识点分享
2019/09/16 Javascript
vue设置一开始进入的页面教程
2019/10/28 Javascript
微信小程序基于高德地图查找位置并显示文字
2019/10/30 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
[43:57]Liquid vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python基于pygame实现的font游戏字体(附源码)
2015/11/11 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
详解多线程Django程序耗尽数据库连接的问题
2018/10/08 Python
Django框架模板介绍
2019/01/15 Python
对django 模型 unique together的示例讲解
2019/08/06 Python
python图形开发GUI库wxpython使用方法详解
2020/02/14 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
2020/02/27 Python
Python远程方法调用实现过程解析
2020/07/28 Python
为智能设备设计个性化保护套网站:caseable
2017/01/05 全球购物
墨尔本最受欢迎的复古风格品牌:Princess Highway
2018/12/21 全球购物
2014年大学生社会实践自我鉴定
2014/09/26 职场文书
2014年学生会工作总结
2014/11/07 职场文书
优秀教师事迹材料
2014/12/15 职场文书
win sever 2022如何占用操作主机角色
2022/06/25 Servers