文档章节

零基础学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 的同学。不管你学习的出发点是兴趣驱动、拓展思维,还是工作需要、想要转行,都可以此文作为一个参考。 在这个信...

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
十问Python,所有关于Python的疑问,由十年pythoner给你作答!

为什么要学习Python编程语言?哪些人适合学习Python? 先回答第一个被初学编程的朋友问到最多的问题,为什么要学习Python编程语言? 答:现在信息更新的非常快速,又迎来了大数据的时代, 各...

Python新世界
07/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

HTTPS is easy

HTTPS is easy https://www.troyhunt.com/https-is-easy/ HTTPS is easy! In fact, it's so easy I decided to create 4 short videos around 5 minutes each to show people how to enable ......

openthings
14分钟前
0
0
bugList 2

用户端: 1. 上传文件时,当选择:彩色-A3-双面时,第二个图片有bug 应改为 和第一个图片的类型相同 2. 确认打印时,三个下拉选目前有bug 应改为:根据后台配置的商家,group by计算出不同城...

勇恒
17分钟前
2
0
keras cnn 网咯 mnist 分类

搭建貌似比tf是简单很多。。。。。 from keras.datasets import mnistfrom keras.utils import np_utilsfrom keras.models import Sequentialfrom keras.layers import Dense, Activat......

阿豪boy
20分钟前
0
0
解决 /var/run/nginx.pid failed

nginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directory) sudo nginx -c /etc/nginx/nginx.conf nginx -s reload...

驛路梨花醉美
21分钟前
0
0
nginx负载均衡-ssl原理-生成ssl密钥对-nginx配置ssl

nginx负载均衡: 1.创建配置文件 vim /usr/local/nginx/conf/vhost/load.conf #添加以下内容: upstream qq_com #名字自定义,借助此模块定义多个IP,后面...

ZHENG-JY
22分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部