看完这些笔记自己就可以入门Python了
在B站上看小甲鱼的视频,顺便整理一下自己的笔记。
第10课 列表
第11课 元组
第12课 字符串
第13课 format 格式化
第14课 序列
第15课 函数
第16课 lambda表达式 filter和map
1、什么是lambda表达式?
不知道有没有小伙伴学过Java,学过Java的都应该知道什么是匿名函数,其实lambda表达式就相当于匿名函数。其实不明白的小伙伴也没有关系,简单的说就是简化一个函数的表达式。
它适合代替只使用一次的函数。
2、lambda表达式的用法
首先说一下表达式的返回值是什么
举几个简单的例子,就很好懂了。
假如我们定义了一个函数如下:
def fun1(x):
return x + 2 * x
fun1(2)
想要得到函数结果还需要调用函数,但是如果使用lambda表达式就不需要那么麻烦了。
g = lambda x:x + 2 * x
g(2)
两者的结果是一样的。再如:
通过这两个例子应该就很明白其用法了。
3、lambda表达式的习题
1:请使用lambda表达式将下边函数转变为匿名函数
def fun_A(x,y=3):
return x * y
我直接将运行法的答案贴上:
2:将下边的匿名函数转变为普通函数
lambda x: x if x % 2 else None
答案如下:
3:使用lambda表达式的作用:
①Python写一些执行脚本时,使用匿名函数就可以省下定义函数的过程,可以使代码变得精简。
②对于一些比较抽象并且整个程序智行下来只需要调用一两次的函数,有时候给函数起个函数名字也是比较头疼的问题,使用匿名函数就不需要考虑命名的问题了。
③简化代码的可读性,由于普通的函数阅读起来经常要跳到开头def定义部分,使用匿名函数可以省去这样的步骤。
4、filter(function or None,iterator)
filter()方法返回的是一个对象。
①当首个参数为None时,将其转换成列表输出如下:
list(filter(None,[0,1,False,True]))
其结果为:[1,True]
即,若第一个参数为None的情况下,默认输出为True的数据。
②当第一个参数为函数时:
def add(x):
return x % 2
temp = range(10)
show = filter(add,temp)
list(show)
输出结果为:[1,3,5,7,9]
即,在range(10):0-9内,输出x % 2有余数数据的索引。
结合lambda表达式的学习,可以将上述代码改进如下:
list(filter(lambda(x:x % 2),range(10)))
4、map(function or None,iterator)
map为映射,用法和filter一样,但是最终的输出结果为数据值,而不是键值
同样的代码:
list(map(lambda(x:x % 2),range(10)))