|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 醉酒青牛 于 2015-9-26 12:29 编辑
小牛有话说:
各位鱼油,大家好。我是小牛,如果您已经看完或者正在看鱼神的《零基础入门学习Python》视频,想随时复习前面的知识点却又不想花太多时间和精力重翻视频,来这里《零基础入门Python学习》整理瞅瞅小牛呕心做的的视频内容的总结吧^_^,如果觉得有用的话,可以点击帖子右上角的“订阅”按钮,这样以后就能够随时看到小牛做的最新的整理了 。
本期主要内容导读:
这一期我们归纳一下鱼神第二十一讲“函数:lambda表达式”。这一期里面鱼神主要是讲了lambda表达式作为隐函数的意义,lambda表达式的用法以及和lambda表达式紧密相关的内置函数filter()和map()函数的用法。下面我们就来详细介绍一下各个知识点吧~~~~~~
1. lambda表达式的概念和意义
在Python中lambda表达式又称为隐函数,它的定义过程由形参和要返回的表达式组成。它相对于一般函数而言具有以下优势:a. 免去了函数定义过程,代码变得更加精简;b 省却定义函数名过程,不再需要处心积虑的想出一个符合函数功能的名字;c. 省去了返回到函数定义处阅读代码过程,提高了代码的可读性。
2. lambda表达式的用法
lambda 表达式不需要设置函数名,而仅需要用lambda关键字声明 形参:返回值表达式即可,举例说明
>>> def line(x):
return 2*x +1
>>> line(2)
5
将其用lambda形式实现
>>> a = lambda x:2*x +1
>>> a(2)
5
当然,lambda表达式也可以对多个形参进行处理,举例说明:
>>> def add(x,y):
return x+y
>>> add(2,3)
5
将其用lambda形式实现
>>> a = lambda x,y:x+y
>>> a(2,3)
5
3. 两个内置函数 filter()和map()
filter()函数实现过滤功能,它有两个参数,第一个参数为为None或一个函数对象,第二个参数为一个可迭代的对象。当第一个参数为None时,实现将可迭代对象的每一个元素值为False的过滤掉,生成一个仅包含元素值为True的新可迭代对象,举例说明:
>>> list1 = [0,False,True,'小甲鱼',3.14,-5]
>>> list2 = filter(None,list1)
>>> list2
<filter object at 0x0237CC50>
>>> list(list2)
[True, '小甲鱼', 3.14, -5]
当然,如果filter函数的第一个参数为一个函数对象时,那么此时这个作为参数的函数会调用第二个可迭代对象里面的每一个元素作为实参,并按返回值对可迭代对象的元素进行过滤,返回值为False的被过滤掉,剩下的可迭代对象的元素组成一个新的可迭代对象并返回。这里我们将filter函数的第一个参数函数用我们的lambda表达式实现,举例说明:
>>> list(range(9))
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>> list(filter(lambda x:x%2,range(9)))
[1, 3, 5, 7]
map()函数与filter()函数形式一致,实现对可迭代对象的映射,但其第一个参数必须是一个函数对象,而且map()函数是将经过函数对象处理后的返回值作为新的元素组成一个可迭代对象的,举例说明:
>>> list(map(lambda x:x%2,range(9)))
[0, 1, 0, 1, 0, 1, 0, 1, 0]
|
评分
-
查看全部评分
|