Python中的map,reduce,filter,sorted函数

高阶函数,把函数作为参数的函数

a = [1,2,3,4,5]
def gf(f,alist):
	return f(alist)
print(f'a列表的总和为{gf(sum,a)}')
print(f'a列表的最大值为{gf(max,a)}')
print(f'a列表的最小值为{gf(min,a)}')

a列表的总和为15
a列表的最大值为5
a列表的最小值为1

四个常用的高阶函数

映射map

map(f,[a1,a2,a3])—> [f(a1),f(a2),f(a3)]

print(list(map(abs,[-2,-1,-3])))
[2, 1, 3]

匿名函数 lambda
适用于在一条语句中定义一个简单的函数,

print(list(map(lambda i:sum(i),[(1,2),(3,4),(5,6)])))

[3, 7, 11]

递归函数 reduce

reduce(f,[a,b,c]) —> f(f(a,b),c)

from functools import reduce
print(reduce(lambda i,j:i*2+j,[1,2,3,4]))

该语句等价于 ((2*1+2)*2+3)*2+4

过滤filter

a = [44,76,55,98,56,33,88]
plist = list(filter(lambda i:i<60 , a))
print(plist)

该语句可以得到a中小于60的值,filter过滤掉了大于60的人.

排序sorted

按照给定的规则进行排序.

a = [-3,-1,2,4,0]
按照绝对值进行排序:
print(sorted([-3,-1,2,4,0],key = abs))
按照余4后的值进行排序
print(sorted([-3,-1,2,4,0],key = lambda i:i%4))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值