匿名函数的使用
def func1(a,f):
print('+++++>',a)
r=f(a)
print('=====>',r)
func1(8,lambda x:x**2)
匿名函数的使用场合:
- 匿名函数作为参数使用
系统高阶函数
在Python中,函数其实也是一种数据类型。
函数对应的数据类型是function,可以把它当做是一种复杂的数据类型。
既然同样都是一种数据类型,我们就可以把它当做是数字或者字符串来处理。
既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,同样,我们还可以把一个函数当作另一个函数的返回值。这种函数的使用方式我们称之为高阶函数。
高阶函数:一个函数的参数是另一个函数,高阶函数
系统高阶函数
系统高阶函数:max min sorted
m=max(5,9)
print(m)
m=max([2,4,67,8,9])
print(m)
#打印字典返回的结果
list1=[('tom',19),('tony',20),('lily',18),('daniel',22)]
m=max(list1,key=lambda x:x[1])
print(m)
mi=min(list1,key=lambda x:x[1])
print(mi)
s=sorted(list1,key=lambda x:x[1],reverse=True)
print(s)
#filter的匿名函数要求返回值必须是bool类型,只有bool类型结果为True的才符合过滤条件
rrr=filter(lambda x:x[1]>20,list1)
print(list(rrr))
list2=[]
for i in list1:
if i[1]>20:
lis2.append(i)
ma=map(lambda x:x[1]+1,list1)
print(list(ma))
#通过匿名函数指明提取的内容,并对内容进行加工,
ma=map(lambda x:x[0].title(),list1)
print(list(ma))
from functools import reduce
#reduce(lambda x,y:x+y,[1,2,3,4,5]) calculates ((((1+2)+3)+4)+5)
r=reduce(lambda x,y:x+y,[1,2,3,4,5])
print(r)
#zip()
函数名或类名 | 功能 |
---|---|
sorted函数 | 用来将一个无序列表进行排序,函数参数的返回值规定按照元素的哪个属性进行排序 |
filter类 | 用来过滤一个列表里符合规定的所有元素,得到的结果是一个迭代器。函数参数的返回值指定元素满足的过滤条件 |
map类 | 将列表里的每一项数据都执行相同的操作,得到的结果是一个迭代器,函数参数用来指定列表里元素所执行的操作 |
reduce函数 | 对一个序列进行压缩运算,得到一个值。python3以后,这个方法被移到了functools模块,函数参数用来指定元素按照哪种方式合并 |