Python中的匿名函数lambda的用法
一、lambda函数的简介
对lambda函数,它其实是一个类似于def的函数,只不过lambda是一个不需要定义函数名的匿名函数。当我们在有些时候,需要做一些简单的数学计算时,如果定义一个def函数显得过于繁琐,但是不定义一个类似“函数”的对象,又显得不太方便,所以这里lambda函数就派上用场了。首先我们先来看看lambda函数是如何使用的。
二、lambda函数的使用
这里我们定义一个一元一次函数,y=2x+1,用Python来计算一串数字经过该函数之后的y值。我们就可以定义lambda函数。
$: qiu_y = lambda x:2*x + 1 #在命令行中定义一个匿名函数 即y=2x+1 如图中的In[1]
这个时候我们就已经定义好了一个匿名函数,这个匿名函数我们可以通过调用qiu_y这个变量名来进行调用,调用过程如下:
$: qiu_y(2) #这是计算当x=2时,y的值,也就是5 如图中的In[2]
我们还可以通过列表的方式来进行计算一串数字:
$: [qiu_y(i) for i in range(1,10)] #这时计算当x=从1到9时,对应y的值,返回一个列表格式的数据 如图中的In[3]

三、lambda和def的异同
1.lambda是一个用来编写小体量函数的方法;而def通常则是用来写一个功能较大的,代码量较多的函数。
2.lambda定义的函数称为匿名函数,是一个表达式,类似于def函数中的return语句,是可以放在代码中运行的表达式,可以一边定义一边使用;而def则是一个模块,不能单独放在代码中运行,必须先定义,再使用。
3.由lambda定义的函数可以不需要函数名,即匿名函数;而由def定义的函数而是需要一个函数名,没有函数名会报错。
4.二者都可以设置参数或者不设置参数,lambda不设置参数时,可以是这样:

四、lambda总结
对于匿名函数lambda来讲,这其实可以是一个非常方便的函数表达式(我们可以这样称呼它)。当我们需要做一些简单的重复操作时,我们可以使用lambda匿名函数来帮我们;当我们需要处理一些比较复杂的问题时,我们就需要使用def来定义函数来,且def定义的函数也更方便代码的复用。
今天就先讲到这里,如果有疑问,我们可以通过邮箱一起共同学习。
Python中的匿名函数lambda的用法的更多相关文章
- python做中学(八)匿名函数lambda的用法
匿名函数,顾名思义即没有名称的函数,和def定义的函数的最大区别在于匿名函数创建后返回函数本身(即匿名函数不需要return来返回值),表达式本身结果就是返回值,而def创建后则赋值给一个变量名,在P ...
- Python 中的匿名函数,你滥用了吗?
概念 我们从一个例子引入. 这里有一个元素为非空字符串的列表,按字符串最后一个字母将列表进行排序.如果原列表是 ['abc', 'g', 'def'],则结果应该是 ['abc', 'def', 'g ...
- python中的匿名函数
python 使用 lambda 来创建匿名函数. 所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数. lambda 只是一个表达式,函数体比 def 简单很多. lambda的主体是一 ...
- Qt中使用匿名函数lambda表达式
一.为什么要使用匿名函数lamdba 首先,lambda表达式可以使代码变得简单,C++中,一个lambda表达式表示一个可调用的代码单元.如代码: #include <QCoreApplica ...
- python 中的匿名函数lamda和functools模块
为什么 要把匿名函数和functools模块写在一起? 因为 lamda函数和functools模块都是对函数一种增强或者是简化. 匿名函数: 为了解决那些功能很简单的需求而设计一次性的需求函数 #& ...
- golang中的匿名函数三种用法
package main import ( "fmt" "strconv" ) func main() { // 匿名函数的使用:方式1 f1 := func( ...
- Python中 filter | map | reduce | lambda的用法
1.filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tupl ...
- python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))
1.1函数式编程 面向过程编程:我们通过把大段代码拆成函数,通过一层一层的函数,可以把复杂的任务分解成简单的任务,这种一步一步的分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. ...
- 匿名函数lambda
匿名函数的定义 在python中,匿名函数的定义如下: func =lambda x:x+1 #定义匿名函数,x为传参,x+1为返回值,func为函数名 res = func(10) #执行匿名函数 ...
随机推荐
- Vue SPA应用中使用Layer的iframe 弹出层,并且传值
问题来源: BOOS 竟然说喜欢有可移动可最大化的弹出层,这!!! SPA 模式下就是这种引入Vue.js的写法 layer.open({ type: , area: ['840px', '550px ...
- Shiro和Spring 集合实现同一个账号只能一个人在线使用,其它人在使用进行剔除(八)
1.实现原理其实就是自定义过滤器,然后登录时,A登录系统后,B也登录了,这个时候获取此账号之前的session给删除,然后将新的session放入到缓存里面去,一个账户对应一个有序的集合 编写自定义过 ...
- Jenkins修改端口号(成功率高)
转载:http://blog.csdn.net/dzh0622/article/details/52470634 Jenkins默认的端口号是8080,修改方法: 1. 打开终端,cd 到Jenkin ...
- cnblog博客管理
http://www.cnblogs.com/wc1903036673/ 12436109 https://www.cnb ...
- struts,hibernate,spring配置时问题汇总及解决办法
1.java.lang.NoClassDefFoundError: org/objectweb/asm/ClassVisitor 缺少asm-3.3.jar 2.java.lang.NoClassDe ...
- WHY JAVASCRIPT NEEDS TYPES
Types have a bad reputation for making code harder to read, adding unnecessary ceremony, and in gene ...
- ResourceUtils读取properties文件
注意: properties文件要放在classPath下面,也就是与src下. path.properties(在properties文件中\代表着没有完,下行同本行是一个内容) perfectMa ...
- URL Scheme
[URL Scheme] 可以通过info.plist注册url types来实现程序自定义的协议,以供外部程序调起. NSURL *myURL = [NSURL URLWithString:@&qu ...
- 安装wampserver后,在www文件夹下面写php文件,而在网页里输入localhost而无法打开php文件时解决办法汇总
wampserver安装后,在www文件夹下面写入xx.PHP文件,然后在网页里输入localhost:xx.PHP. 你可能会遇到如下三种情况: 情形一:网页上显示空白,按F12,出现404的错误. ...
- Linux安装服务器
[实验:按照下述要求安装一台Server] /boot 100M / 10G /data 50G /var/ftp LVM 6G :/dev/vg_ftp/lv_ftp swap 2048M 主机名: ...