这一章节我们来讨论一下为什么要使用lambda表达式
主要的目的就是提供一个更加简洁的代码结构,但是对于初学者,它可能反而增加阅读的难度
lambda通常应用在行为调整表,也就是行为的列表或者字典,能够按照需求执行不同的代码。
>>> aList=[lambda x:x**2,lambda x:x**3,lambda x:x**4]#list里面是三种幂算法
>>> for func in aList:
print(func(2))
4
8
16
>>>
我们看见上面的代码比较简介,而且很可能列表里面的方法只是在这个地方使用,而不在其他地方使用,这样就不用像下面的代码一样定义这么多函数
我们下面给出等价代码:
>>> def test1(x):return x**2
>>> def test2(x):return x**3
>>> def test3(x):return x**4
>>> aList=[test1,test2,test3]
>>> for func in aList:
print(func(2))
4
8
16
>>>
两组代码相对比,第一组的结构明显简单很多,而且由于使用lambda表达式使得定义的方法比较少,相对容易管理,因为这三种幂算法只是在这里使用,而不会在其他地方使用
但是,笔者认为,对于初学者,或者不是函数式编程背景的程序员,尽量使用第二种方法,因为维护起来更加简单明了,现在这个时代代码的可阅读性比代码性能、结构来的更加重要,毕竟不是每一个引用的秒请求次数都是那么高的,当然,这只是笔者一点个人意见
上面我们列举了在列表里面的使用,我们下面说说在字典里面的使用
>>> aDict={'a':lambda : 2**2,'b':lambda : 3**2,'c':lambda : 4**2}#根据条件输出
>>> for key in aDict:
print(key+str(aDict[key]()))
b9
c16
a4
>>>
如果是作为一种行为选择器,字典可能更加适合,因为它可以根据key来选择不同的表达式,而在列表里面只能选择下标,key比下标来的更加明确
例如:
>>> aDict={'before':lambda : 'before','doing':lambda : 'doing','after':lambda : 'after'}#根据条件输出
>>> for key in aDict:
print(key+':'+str(aDict[key]()))
before:before
after:after
doing:doing
>>>
上面的代码展现了一件事情在不同的生命周期需要做的东西,例如有开始的时候、正在进行的时候、做完的时候
上面代码的等价代码:
>>> def before():return 'before'
>>> def doing():return 'doing'
>>> def after():return 'after'
>>> aDict={'before':before,'doing':doing,'after':after}
>>>
>>> for key in aDict:
print(key+':'+str(aDict[key]()))
before:before
after:after
doing:doing
>>>
结合lambda与字典,更加适合做分支选择工具
总结:这一章节主要说明了为什么需要用lambda,以及简单介绍lambda结合列表与字典怎样作为行为选择器来使用
这一章节就说到这里,谢谢大家
------------------------------------------------------------------
点击跳转零基础学python-目录
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
主要介绍了解决mybatis-plus3.1.1版本使用lambda表达式查询报错的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
Python代码源码-实操案例-框架案例-利用lambda表达式简化编程.zip
使用环境:需要先安装PyCharm(请自己百度下载安装),以及然后官网上下载Python 2.7版本,以及Python 3.7版本后,安装在自己的电脑上。...目的:帮助理解lambda表达式定义函数在Python中的具体使用。
Java8发布到现在至少3年了,但是对Lambda表达式不熟悉、看不懂、不会用的现象非常...本系列课程从Lambda表达式、方法的引用、Stream API三处着手分析Lambda表达式的使用。 通过大量的实战例子讲解如何使用Lambda表达式
这份资源详细介绍了Python语言中lambda表达式的使用方法和技巧。...无论您是否已经具备了Python语言的基础知识,这份资源都将帮助您更好地掌握lambda表达式的使用方法,并为您的工作和学习提供有力支持。
Java 8编程官方参考教程(第9版),带详细目录。 注意:带详细目录,带详细目录,带详细目录。详细书签、详细书签、详细书签。
1、Lambda表达式概述:了解Lambda表达式的定义、语法和变量捕获机制,以及为什么要在Java中引入Lambda表达式来支持函数式编程。 2、函数式接口与Lambda表达式:学习如何使用Lambda表达式与不同类型的函数式接口进行...
java学习课件,供参考学习使用
课题 使用lambda语句创建匿名函数 授课人 课型 实训 课程 Python编程基础与应用 班级 课时 2 上课时间 上课地点 教学目标 掌握使用lambda语句创建匿名函数的方法 重 点 难 点 学情分析 教学方法 演示法、做中学、...
主要内容: ● 为何需要lambda,...第2章 Java lambda表达式的基础知识 23 第3章 流与管道介绍 55 第4章 终止流:收集与汇聚 91 第5章 起始流:源与分割迭代器 135 第6章 流的性能 167 第7章 使用默认方法演化API 195
Python 利用lambda表达式简化编程 Python源码Python 利用lambda表达式简化编程 Python源码Python 利用lambda表达式简化编程 Python源码Python 利用lambda表达式简化编程 Python源码Python 利用lambda表达式简化编程 ...
1. lambda: 1. 概念:就是对函数式接口匿名内部类的简写 ... 7、lambda表达式若访问了局部变量,则局部变量必须是final的, 若是局部变量没有加final关键字,系统会自动添加,此后在修改该局部变量,会报错;
什么是Linq表达式什么是Lambda表达式.pdf 什么是Linq表达式什么是Lambda表达式.pdf
2_Lambda表达式.zip2_Lambda表达式.zip2_Lambda表达式.zip
Java8发布到现在至少3年了,但是对Lambda表达式不熟悉、看不懂、不会用的现象非常...本系列课程从Lambda表达式、方法的引用、Stream API三处着手分析Lambda表达式的使用。 通过大量的实战例子讲解如何使用Lambda表达式
Java8发布到现在至少3年了,但是对Lambda表达式不熟悉、看不懂、不会用的现象非常...本系列课程从Lambda表达式、方法的引用、Stream API三处着手分析Lambda表达式的使用。 通过大量的实战例子讲解如何使用Lambda表达式
Stream、Lambda表达式练习.doc
Java8发布到现在至少3年了,但是对Lambda表达式不熟悉、看不懂、不会用的现象非常...本系列课程从Lambda表达式、方法的引用、Stream API三处着手分析Lambda表达式的使用。 通过大量的实战例子讲解如何使用Lambda表达式
lambda表达式语法如下 函数名 = lambda 参数 : 参数表达式 在使用的时候 函数名(变量) eg. 通过常规方式定义函数 if x<y: res = x+y else: res = x-y return res print(fun(1,3)) # 4 通过lambda表达式...
通过多个示例详细演示了.Net中C#语言lambda表达式的基本用法,主要包括三个方面内容: 1.什么是lambda表达式 2.理解lambda表达式 3.使用lambda表达式