1.高阶函数:能够把函数当成参数传递的就是高阶函数(map,filter,reduce,sorted)
2.map()函数
map(func,iterable)
功能:处理数据
把iterable中的数据一个一个拿出来,扔到func做处理,通过调用迭代器来获取返回值
参数:
func:函数(内置函数、自定义函数)
iterable:可迭代性对象(容器类型数据,range对象,迭代器)
返回值:
迭代器
举例1:将列表中的字符串转换为整型
from collections import Iterator,Iterable
lst={'1','2','3','4'}
res=map(int,lst)
for i in res:
print(i)
举例2:【1,2,3,3】转换为【2,8,24,64】
lst = [1,2,3,4]
def change(n):
return n << n
res = map(change,lst)
i = list(res)
print(i)
3.reduce函数
redece(func,iterable)
功能:计算数据
把iterable中的前两个数据扔到func函数中做计算,把计算的结果和iterable中的第三个值再继续扔到func中作计算,以此类推,最后返回计算结果
返回值:计算结果
举例1:【7,7,5,8】转换为7758
方法一:可用转换为字符串
方法二:
from collections import Iterator,Iterable
from functools import reduce
def change(x0,x1):
return 10*x0+x1
lst = [7,7,5,8]
res = reduce(change,lst)
print(res)
使用lambda进行改造
from collections import Iterator,Iterable
from functools import reduce
lst = [7,7,5,8]
print(reduce(lambda x,y:10*x+y,lst))
4.filter函数
功能:过滤数据
在自定义函数中,如果返回真,代表该数据保留,如果返回假,代表该数据舍弃
语法:filter(func,iterable)
举例1:只保留列表中的偶数
from collections import Iterator,Iterable
from functools import reduce
lst = [7,7,5,8,45,6]
print(list(filter(lambda n:True if n % 2 == 0 else False,lst)))
5.sorted函数
sorted(iterable,key=函数,reverse=False)
功能:排序
参数:
key:函数(内置函数、自定义函数)
iterable:可迭代性对象(容器类型数据,range对象,迭代器)
reverse:是否倒序
返回值:
列表
举例1:将元组从小到大排序
tup = (10,1,58,-58,0)
print(sorted(tup))
打印结果:
[-58, 0, 1, 10, 58]
将元组从大到小排序
tup = (10,1,58,-58,0)
print(sorted(tup,reverse=True))
打印结果:
[58, 10, 1, 0, -58]
举例2:按照绝对值进行排序
tup = (10,1,58,-58,0)
print(sorted(tup,key=abs,reverse=True))
打印结果:
[58, -58, 10, 1, 0]