笔记十二:高阶函数(map,filter,reduce,sorted)

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]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值