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列表list数组array用法实例解析
Oct 28 Python
python单例模式实例分析
Apr 08 Python
Python中类的初始化特殊方法
Dec 01 Python
python3+PyQt5自定义视图详解
Apr 24 Python
Django如何配置mysql数据库
May 04 Python
django静态文件加载的方法
May 20 Python
Python之循环结构
Jan 15 Python
如何更换python默认编辑器的背景色
Aug 10 Python
python实现控制台输出颜色
Mar 02 Python
用Python实现一个打字速度测试工具来测试你的手速
May 28 Python
分享3个非常实用的 Python 模块
Mar 03 Python
python数字图像处理数据类型及颜色空间转换
Jun 28 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经典算法集锦
2015/11/14 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
Laravel5.5 动态切换多语言的操作方式
2019/10/25 PHP
js form 验证函数 当前比较流行的错误提示
2009/06/23 Javascript
在浏览器中获取当前执行的脚本文件名的代码
2011/07/19 Javascript
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
JS验证日期的格式YYYY-mm-dd 具体实现
2013/06/29 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
js左右弹性滚动对联广告代码分享
2014/02/19 Javascript
JavaScript中对象属性的添加和删除示例
2014/05/12 Javascript
基于js与flash实现的网站flv视频播放插件代码
2014/10/14 Javascript
JavaScript设计模式之抽象工厂模式介绍
2014/12/28 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
2015/03/03 Javascript
nodejs socket实现的服务端和客户端功能示例
2017/06/02 NodeJs
详解基于 axios 的 Vue 项目 http 请求优化
2017/09/04 Javascript
angular 未登录状态拦截路由跳转的方法
2018/10/09 Javascript
Vue如何基于vue-i18n实现多国语言兼容
2020/07/17 Javascript
element中table高度自适应的实现
2020/10/21 Javascript
[01:03:22]LGD vs OG 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
python绘制铅球的运行轨迹代码分享
2017/11/14 Python
Python实现的归并排序算法示例
2017/11/21 Python
Python高级编程之继承问题详解(super与mro)
2019/11/19 Python
使用Pandas将inf, nan转化成特定的值
2019/12/19 Python
Python enumerate内置库用法解析
2020/02/24 Python
python实现五子棋程序
2020/04/24 Python
Python logging模块原理解析及应用
2020/08/13 Python
用Python实现职工信息管理系统
2020/12/30 Python
德国高品质男装及配饰商城:Cultizm(Raw Denim原色牛仔裤)
2018/04/16 全球购物
linux面试题参考答案(2)
2015/12/06 面试题
网络工程师的自我评价
2013/10/02 职场文书
2014年清明节网上祭英烈寄语
2014/04/09 职场文书
超市开业庆典策划方案
2014/05/14 职场文书
医生爱岗敬业演讲稿
2014/08/26 职场文书
安全生产标语大全
2014/10/06 职场文书
公司保密管理制度
2015/08/04 职场文书
Java版 简易五子棋小游戏
2022/05/04 Java/Android