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) #执行匿名函数 ...
随机推荐
- Red Hat 系列如何快速定制二进制内核 RPM 包?
随着Linux服务器越来越多了,底层系统内核想要保持版本统一就需要定制专门的二进制安装包来便捷的升级和管理. RedHat系那当然就是使用rpmbuild来做定制化管理了. 今天我们分俩个部分(roo ...
- Chrome 扩展 Vue Devtools
Vue.js devtools是基于google chrome浏览器的一款调试vue.js应用的开发者浏览器扩展,可以在浏览器开发者工具下调试代码. 1)首先在github下载devtools源码,地 ...
- OSX 下 sftp 上传目录到服务器
使用如下命令: put –r dir mput –r dir
- VS2017中对C++的单元测试
安装Visual Studio 2017 由于平时都是用codeblock,因此电脑中没有装VS系列的IDE,就从安装开始吧 最开始安装的时候没有注意什么都没选,安装完了以后根本没有c++的编译器和各 ...
- persona 典型用户
1.姓名:王涛 2.年龄:22 3.收入:基本无收入 4.代表用户在市场上的比例和重要性:王涛为铁道学生.本软件的用户主要是学生和老师,尤其是广大的铁大学子,所以此典型用户的重要性不言而喻,而且比例相 ...
- Linq使用中的ToList注意事项
在使用Linq时,如果查询逻辑太复杂,可以拆分为多个Linq查询,下一个Linq在上一个Linq查询的结果上继续操作,这样逻辑清晰,又不会出错.但在使用ToList的时候需要注意,最常见碰到的错误是: ...
- winform 开发中 把耗时操作 封装起来 异步执行(.net 4.0)
.先定义一个 BackgroundTask.cs 代码如下: public class BackgroundTask { private static WaitDialogForm LoadingDl ...
- Ubuntu 16.04.2 LTS 安装 jdk1.6 和 tomcat6 (二)
上一篇记录和分享了jdk1.6 在Ubuntu 16.04.2 环境下的安装配置,本文开始安装和配置tomcat 6 2 安装tomcat http://tomcat.apache.org ...
- solr特点八:Spatial(空间搜索)
前言 在美团CRM系统中,搜索商家的效率与公司的销售额息息相关,为了让BD们更便捷又直观地去搜索商家,美团CRM技术团队基于Solr提供了空间搜索功能,其中移动端周边商家搜索和PC端的地图模式搜索功能 ...
- shell查找进程并终止
创建kill.sh文件,内容如下: port= #一.根据端口号查询对应的pid,两种都行 pid=$(netstat -nlp | grep :$port | awk '{print $7}' | ...