定义:如果一个函数A,它的某个参数是一个函数B。那么我们称A这个函数就为高阶函数,B一般叫做参数函数
语法:def funcA( funcB: T -> U, x, y……)
功能:对列表中的元素实现一对一的转换处理,返回得到一个新的列表
场景:一对一的转换
语法
"""
map(func, iterable):
* func:传入一个函数,该函数带有1个形参
* iterable:可迭代数据,简单理解为一个列表数据
作用:将可迭代数据中的每个元素传递给func函数的形参,func函数的返回值组成新的一组数据
"""
示例
my_li = [1, 2, 3]
# 需求:将 my_li 中每个元素都乘2
# 使用普通函数
def comp(x):
return x*x
res1 = map(comp, my_li)
print('普通函数:', *res1)
# 使用lambda函数
res2 = map(lambda x: x*2, my_li)
print('lambda函数:', *res2)
功能:用于实现对列表中的元素进行过滤,满足条件的数据将保留组成新的列表
场景:数据过滤
语法
"""
filter(func, iterable)
* func:传入一个函数,该函数带有1个形参,并且返回一个bool值
* iterable:可迭代数据,简单理解为一个列表数据
作用:将可迭代数据中的每个元素传递给func函数的形参,结果为True的数据会被保留,为False的数据会被删除。
"""
示例
my_li = [1, 2, 3, 4, 5, 6]
# 需求1:将 my_li 中大于5的数字保留
res = filter(lambda x: x > 5, my_li)
print(*res)
# 需求2:将 my_li 中的奇数保留
res = filter(lambda x: x % 2 != 0, my_li)
print(*res)
功能:对列表中的数据进行聚合,返回聚合的结果
场景:数据聚合
语法
"""
reduce(func, iterable):
* func:传入一个函数,该函数带有2个形参
* iterable:可迭代数据,简单理解为一个列表数据
"""
示例
from functools import reduce
my_li = [1,2,3]
# 计算 my_li 中元素之和
res = reduce(lambda tmp,item: tmp+item, my_li)
print(res)
# 计算 my_li 中元素之积
res = reduce(lambda tmp,item: tmp*item, my_li)
print(res)
功能:对列表中的元素进行排序
场景:数据排序
语法
"""
sorted(iterable, key, reverse=False)
* iterable:可迭代数据,简单理解为一个列表数据
* key:传入一个函数,该函数带有1个形参(可选,按照传入形参进行排序)
* reverse:默认为False,设置为True,表示逆序
"""
示例
my_li = [1,2,4,3,5]
# 对 my_li 进行降序排序
res1 = sorted(my_li, reverse=True)
print(res1)
my_word = [('spark', 3), ('pandas', 1), ('hello', 2)]
# 对 my_word 按照value进行升序排序
res2 = sorted(my_word, key=lambda x: x[1], reverse=False)
print(res2)