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 相关文章推荐
TensorFlow实现非线性支持向量机的实现方法
Apr 28 Python
华为2019校招笔试题之处理字符串(python版)
Jun 25 Python
python实现简单聊天室功能 可以私聊
Jul 12 Python
python计算波峰波谷值的方法(极值点)
Feb 18 Python
python logging设置level失败的解决方法
Feb 19 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
30行Python代码实现高分辨率图像导航的方法
May 22 Python
Python爬虫实现百度翻译功能过程详解
May 29 Python
Keras中的多分类损失函数用法categorical_crossentropy
Jun 11 Python
Python CategoricalDtype自定义排序实现原理解析
Sep 11 Python
Python tensorflow卷积神经Inception V3网络结构
May 06 Python
python标准库ElementTree处理xml
May 20 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 高效率写法 推荐
2010/02/21 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
2014/06/30 PHP
php连接与操作PostgreSQL数据库的方法
2014/12/25 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
2015/05/08 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
对象的类型:本地对象(1)
2006/12/29 Javascript
Js(JavaScript)中,弹出是或否的选择框示例(confirm用法的实例分析)
2013/07/09 Javascript
js实现select组件的选择输入过滤代码
2014/10/14 Javascript
使用impress.js制作幻灯片
2015/09/09 Javascript
AngularJS入门教程之Scope(作用域)
2016/07/27 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
JavaScript函数绑定用法实例分析
2017/11/14 Javascript
vue项目中将element-ui table表格写成组件的实现代码
2019/06/12 Javascript
Python的内存泄漏及gc模块的使用分析
2014/07/16 Python
使用Python脚本来控制Windows Azure的简单教程
2015/04/16 Python
python读取与写入csv格式文件的示例代码
2017/12/16 Python
在python中只选取列表中某一纵列的方法
2018/11/28 Python
python 判断矩阵中每行非零个数的方法
2019/01/26 Python
python常用数据重复项处理方法
2019/11/22 Python
Python爬取12306车次信息代码详解
2020/08/12 Python
Foot Locker加拿大官网:美国知名运动产品零售商
2019/07/21 全球购物
JavaScript获取当前url根目录(路径)
2014/02/19 面试题
高中毕业自我鉴定范文
2013/10/02 职场文书
开学寄语大全
2014/04/08 职场文书
产品陈列协议书(标准版)
2014/09/17 职场文书
离职报告范文
2014/11/04 职场文书
2014年为民办实事工作总结
2014/12/20 职场文书
2015年爱国卫生月活动总结
2015/03/26 职场文书
大学考试作弊检讨书
2015/05/06 职场文书
2016年秋季运动会广播稿
2015/12/21 职场文书
python缺失值的解决方法总结
2021/06/09 Python
分析Python感知线程状态的解决方案之Event与信号量
2021/06/16 Python
Go语言安装并操作redis的go-redis库
2022/04/14 Golang
Java结构型设计模式之组合模式详解
2022/09/23 Java/Android
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技