骄傲的赛亚人

高阶函数

1、匿名函数:lambda

语法:lambda 参数1,参数2: 函数返回值表达式。(参数可以是一个或多个)

func=lambda x,y:x*y

print(func(2,3))

输出:6

 

应用场景:

x就是列表中的一组数据

 print(li)

输出:[[1, 23, 44], [32, 43, 23], [32, 44, 12]]  

匿名函数面试题:

li等于5个匿名函数

i取的是最后一个循环的值

 

 

 输出:

16

16

16

16

16

 

2、过滤器:filter(内置函数)

作用:对函数进行过滤,留下满足条件的值

表达式:

res = filter(lambda x: x > 10, li)  

参数1:过滤规则函数,会根据函数的返回值来进行过滤

参数2:要进行过滤的可迭代对象

 

 data返回的是一个过滤器对象

输出:

<filter object at 0x000001F567A47470>

[32, 43, 43, 32, 11, 23]

 

3、偏函数:partial  

使用偏函数需要导入:from functools import partial

作用:当函数的参数个数太多,用来固定原函数的部分参数(相当于重构函数)

 

 

26行:将过滤器函数filter的第一个参数固定   ,data是一个过滤器函数

27行:在调用过滤器函数的时候,就只需要给函数传递一个,可迭代对象的参数

 

4、map函数

参数1:处理函数

参数2:可迭代对象

将li列表中的值依次取出来,然后传递给handle_data函数,函数执行后,把所有的数据,返回到一个map对象中

 

 

 

5、all函数:(代替and)

all后面可以跟任意可迭代对象

 

 

6、any函数:代替or

 

 7、exec函数

eval:识别字符串中有效的python表达式

exec作用:执行字符串中有效的python代码,是一个python执行器

 

 

 输出:

100

阿豪

 

8、zip函数:聚合打包

传入zip的必须是可迭代对象

zip()函数在运算时,会以一个或多个序列(可迭代对象)作为参数,返回一个元祖的列表。同时将这些序列中并排的元素配对

zip()函数可以接受任何类型的序列,同时也可以有两个以上的参数,当传入参数长度不一致时,zip能自动以最短序列长度为准进行截取,获得元祖

 

 

 

 输出:

[('id', 1), ('name', 'tom'), ('age', 20)]

 


posted on 2022-02-22 11:46  骄傲的赛亚人  阅读(156)  评论(0编辑  收藏  举报

导航