跟小甲鱼自学python笔记 lambda表达式、filter和map更新中…

看完这些笔记自己就可以入门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)))

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/A_Tu_daddy/article/details/105125734
今日推荐