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 GAE、Django导出Excel的方法
Nov 24 Python
初学python数组的处理代码
Jan 04 Python
python实现在无须过多援引的情况下创建字典的方法
Sep 25 Python
浅析Python中的多进程与多线程的使用
Apr 07 Python
python开发之函数定义实例分析
Nov 12 Python
Phantomjs抓取渲染JS后的网页(Python代码)
May 13 Python
利用numpy+matplotlib绘图的基本操作教程
May 03 Python
python 保存float类型的小数的位数方法
Oct 17 Python
pandas的连接函数concat()函数的具体使用方法
Jul 09 Python
python中scrapy处理项目数据的实例分析
Nov 22 Python
python 获取域名到期时间的方法步骤
Feb 10 Python
Python制作动态字符画的源码
Aug 04 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
全国FM电台频率大全 - 9 上海市
2020/03/11 无线电
php项目打包方法
2008/02/18 PHP
PHP 面向对象详解
2012/09/13 PHP
PHP上传文件时自动分配路径的方法
2015/01/09 PHP
PHP实现简单数字分页效果
2015/07/26 PHP
PHP生成树的方法
2015/07/28 PHP
PHP实现限制IP访问的方法
2017/04/20 PHP
php实现QQ小程序发送模板消息功能
2019/09/18 PHP
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
JavaScript判断密码强度(自写代码)
2013/09/06 Javascript
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
2015/03/03 Javascript
三分钟带你玩转jQuery.noConflict()
2016/02/15 Javascript
最丑的时钟效果!js canvas时钟制作方法
2016/08/15 Javascript
node.js报错:Cannot find module 'ejs'的解决办法
2016/12/14 Javascript
彻底解决 webpack 打包文件体积过大问题
2017/07/07 Javascript
jquery动态赋值id与动态取id方法示例
2017/08/21 jQuery
js模拟实现烟花特效
2020/03/10 Javascript
[03:11]TI9战队档案 - Alliance
2019/08/20 DOTA
Python全局变量操作详解
2015/04/14 Python
Python递归遍历列表及输出的实现方法
2015/05/19 Python
Python3使用SMTP发送带附件邮件
2020/06/16 Python
详解python中的线程与线程池
2019/05/10 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
2019/09/04 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
Python建造者模式案例运行原理解析
2020/06/29 Python
python工具——Mimesis的简单使用教程
2021/01/16 Python
纯CSS3实现8组超炫酷鼠标滑过图片动画
2016/03/16 HTML / CSS
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
Eclipse面试题
2014/03/22 面试题
女大学生毕业找工作的自我评价
2013/10/03 职场文书
公司出纳岗位职责
2013/12/07 职场文书
《周恩来的四个昼夜》观后思想汇报范文两篇
2014/09/10 职场文书
2014年政协工作总结
2014/12/09 职场文书
小学班主任工作总结2015
2015/04/07 职场文书
Java实现扫雷游戏详细代码讲解
2022/05/25 Java/Android