Python常用的高阶函数

高阶函数定义

定义:如果一个函数A,它的某个参数是一个函数B。那么我们称A这个函数就为高阶函数,B一般叫做参数函数

语法def funcA( funcB: T -> U, x, y……)



常用高阶函数

map

功能:对列表中的元素实现一对一的转换处理,返回得到一个新的列表
场景:一对一的转换
语法

"""
	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

功能:用于实现对列表中的元素进行过滤,满足条件的数据将保留组成新的列表
场景:数据过滤
语法

"""
	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

功能:对列表中的数据进行聚合,返回聚合的结果
场景:数据聚合
语法

"""
   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

功能:对列表中的元素进行排序
场景:数据排序
语法

   """
   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)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值