文档章节

零基础学python-18.6 lambda表达式快速入门

raylee2015
 raylee2015
发布于 2015/10/21 08:10
字数 593
阅读 4
收藏 0

这一章节我们来简单讨论lambda表达式作为入门

在python里面,除了def定义函数外,它还提供另外一种形式来完成函数能够做的事情,就是lambda表达式。

1.lambda表达式的表现形式:

lambda arg1,arg2....argN:expression using args

>>> func=lambda x,y,z :x+y+z
>>> func(1,2,3)
6
>>>


2.lambda是一个表达式,而不是语句,它返回的是一个函数

lambda是一个表达式,它实现的功能比def少很多,它返回的不是确定的值,而是一个函数。

它的应用场景一般是在def不能出现的地方,例如列表常量或者函数调用的参数中

>>> func=lambda x,y,z :x+y+z
>>> func(1,2,3)
6
>>> type(func)
<class 'function'>
>>>


上面的lambda表达式返回的是一个类型是函数的对象

下面是上面的等价def代码:

>>> def test(x,y,z):
	return x+y+z

>>> test(1,2,3)
6
>>>


下面的代码作用在函数的参数里面:

>>> aList=(lambda x='a',y='b',z='c':x+y+z)
>>> aList
<function <lambda> at 0x01E60AE0>
>>> aList()
'abc'
>>> aList('e')
'ebc'

 

而且,lambda表达式具备def的一些特性,例如,特定参数名

>>> aList=(lambda x='a',y='b',z='c':x+y+z)
>>> aList()
'abc'
>>> aList(z='d')
'abd'
>>>


 

3.lambda的主体是一个表达式,而不是代码块

lambda表达式实现的逻辑非常小,它设计的目的是限制嵌套,使逻辑集聚,lambda是为了编写小的功能而设计,def是实现比较大的功能而设计

 

4.lambda表达式遵循作用域搜查法则,说白点就是在def里面嵌套一个小的def

>>> def test(N):
	return lambda x :x**N

>>> sqrt=test(2)
>>> sqrt(2)
4
>>> sqrt(3)
9
>>> trip=test(3)
>>> trip(2)
8
>>> trip(3)
27
>>>


通过lambda表达式,我们可以使得一个函数能够得出非常多的多态函数,例如上面,通过test,即可以实现平方算法,也可以实现立方算法或者其他幂算法

 

总结:这一章节简单讨论了lambda表达式的一些基础,下一章节我们将会结束为什么使用lambda?

 

这一章节就说到这里,谢谢大家

------------------------------------------------------------------

点击跳转零基础学python-目录

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

本文转载自:http://blog.csdn.net/raylee2007/article/details/48600381

共有 人打赏支持
raylee2015
粉丝 6
博文 265
码字总数 44224
作品 0
江门
Python基础总结成千行代码,让Python入门更简单!

只要学会这千行代码,不管你是零基础还是弱基础或是没有接触过编程,都可以快速入门Python!当时我就不信邪啊,等我看完之后,即使作为一个Python老鸟了,还是领会到了很多教授他的独特见解!...

糖宝lsh
09/10
0
0
给伸手党的福利:Python 新手入门引导

这是一篇 Python 入门指南,针对那些没有任何编程经验,从零开始学习 Python 的同学。不管你学习的出发点是兴趣驱动、拓展思维,还是工作需要、想要转行,都可以此文作为一个参考。 在这个信...

crossin
06/15
0
0
Python学习资料篇

Python学习资料网络上比较多,看到好的资源,不及时记录下来,下次就找不到了,我把知乎上好的回到收藏汇总到这里,以便自己随时查看,包括Python入门书籍,网站,项目,官方文档,下载资源等...

BjarneCpp
2017/12/03
0
0
菜鸟学Python,上半年文章大汇总

一晃大半年过去了,时间过的真快啊!上半年我一共发表了原创的文章有近45篇,其中有一些是粉丝投稿的!后台总有人留言说查找历史文章不方便,怎么办?为了方便大家阅读,我把上半年的原创文章...

菜鸟学python
06/24
0
0
为什么python突然变得这么火了?

可能会有一种感觉python突然之间变得这么火热了,个人感觉还是雷声大雨点小,真正用pytho落地的东西还是少,不可否认的python前途无量,现在人工智能的调用框架选择了python。所以目前阶段选...

Python燕大侠
05/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

微信小程序开发系列六:微信框架API的调用

微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发...

JerryWang_SAP
28分钟前
1
0
5 个用 Python 编写 web 爬虫的方法

大家在读爬虫系列的帖子时常常问我怎样写出不阻塞的爬虫,这很难,但可行。通过实现一些小策略可以让你的网页爬虫活得更久。那么今天我就将和大家讨论这方面的话题。 我刚整理了一套2018最新...

糖宝lsh
28分钟前
0
0
docker安装redis、mongodb、mysql等

一、启动docker服务,设置镜像: systemctl start dockervi /etc/docker/daemon.json{ "registry-mirrors": ["https://registry.docker-cn.com"]} 二、下拉镜像: 在镜像中心h...

狼王黄师傅
今天
4
0
deepin系统使用deepin-wine安装exe程序

deepin自带原生deepin-wine使用命令如下: deepin-wine QQBrowser.exedeepin-wine QQMusicSetup.exe 默认安装的快捷方式位置: /root/.wine/drive_c/'Program Files'/Tencent/QQBrowser/......

临江仙卜算子
今天
4
0
快速get到学习Linux操作系统的点

快速get到学习Linux操作系统的点 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能够运行主要的UNIX工具软件...

linuxCool
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部