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 相关文章推荐
windows下python模拟鼠标点击和键盘输示例
Feb 28 Python
Python 高级专用类方法的实例详解
Sep 11 Python
Python有序字典简单实现方法示例
Sep 28 Python
django中的HTML控件及参数传递方法
Mar 20 Python
对python数据切割归并算法的实例讲解
Dec 12 Python
python PrettyTable模块的安装与简单应用
Jan 11 Python
Python基础教程之if判断,while循环,循环嵌套
Apr 25 Python
python文件选择对话框的操作方法
Jun 27 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
Aug 21 Python
python爬虫开发之PyQuery模块详细使用方法与实例全解
Mar 09 Python
django使用channels实现通信的示例
Oct 19 Python
python制作一个简单的gui 数据库查询界面
Nov 19 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
如何在WIN2K下安装PHP4.04
2006/10/09 PHP
smarty巧妙处理iframe中内容页的代码
2012/03/07 PHP
php生成图片缩略图的方法
2015/04/07 PHP
使用PHP生成图片的缩略图的方法
2015/08/18 PHP
js 判断 enter 事件
2009/02/12 Javascript
比Jquery的document.ready更快的方法
2010/04/28 Javascript
jQuery中filter()和find()的区别深入了解
2013/09/25 Javascript
Javascript Objects详解
2014/09/04 Javascript
JS+CSS实现实用的单击输入框弹出选择框的方法
2015/02/28 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
2015/07/27 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
vue表单绑定实现多选框和下拉列表的实例
2017/08/12 Javascript
js+canvas实现滑动拼图验证码功能
2018/03/26 Javascript
使用layer弹窗和layui表单实现新增功能
2018/08/09 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
2019/11/12 Javascript
Vue如何获取数据列表展示
2019/12/11 Javascript
vue form表单post请求结合Servlet实现文件上传功能
2021/01/22 Vue.js
Pandas读取MySQL数据到DataFrame的方法
2018/07/25 Python
浅谈python实现Google翻译PDF,解决换行的问题
2018/11/28 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
django 类视图的使用方法详解
2019/07/24 Python
如何基于Python制作有道翻译小工具
2019/12/16 Python
python datetime处理时间小结
2020/04/16 Python
python uuid生成唯一id或str的最简单案例
2021/01/13 Python
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
小学二年级学生评语
2014/04/21 职场文书
工厂搬迁方案
2014/05/11 职场文书
副总经理任命书
2014/06/05 职场文书
公务员培的训心得体会
2014/09/01 职场文书
学习考察心得体会
2014/09/04 职场文书
领导班子四风问题对照检查材料
2014/09/27 职场文书
出纳年终工作总结2014
2014/12/05 职场文书
工人先锋号申报材料
2014/12/29 职场文书
2015年仓库管理员工作总结
2015/04/21 职场文书
小学教师见习总结
2015/06/23 职场文书
生产设备维护保养制度
2015/08/06 职场文书