学分高考 Python

map函数和reduce函数知识点讲解

发布时间: 2022-05-26 16:20:01

map函数和reduce函数知识点讲解,根据参数,参数map()包含两个参数,第一个参数是一个函数,第二个是序列(列表 或元组)。reduce()第一个参数是函数,第二个是序列(列表或元组);依据数值作用,map()是将传入的函数依次作用到序列的每个元素,reduce()是将传人的函数作用在序列的第一个元素得到结果。

map函数和reduce函数
1、从参数方面来讲:

map()包含两个参数,第一个参数是一个函数,第二个是序列(列表 或元组)。其中,函数(即 map 的第一个参数位置的函数)可以接收一个或多个参数。

reduce()第一个参数是函数,第二个是序列(列表或元组)。但是,其函数必须接收两个参数。

2、从对传进去的数值作用来讲:

map()是将传入的函数依次作用到序列的每个元素,每个元素都是独自被函数“作用”一次。

reduce()是将传人的函数作用在序列的第一个元素得到结果后,把这个结果继续与下一个元素作用(累积计算)。

map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

>>> def f(x):

... return x * x

...

>>> r = map(f,[1,2,3,4,5,6,7,8,9])

>>> list(r)

[1,4,9,16,25,36,49,64,81

map()传入的第一个参数是f,即函数对象本身。由于结果r是一个Iterator,Iterator是惰性序列,

因此通过list()函数让它把整个序列都计算出来并返回一个list。

reduce把一个函数作用在一个序列[x1,x2,x3,...]上,这个函数必须接收两个参数,

reduce把结果继续和序列的下一个元素做累积计算,其效果就是

reduce(f,[x1,x2,x3,x4]) = f(f(f(x1,x2),x3),x4)

age:利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456

def str2float(s):

def fn(x,y):

return x*10+y

n=s.index('.')

s1=list(map(int,[x for x in s[:n]]))

s2=list(map(int,[x for x in s[n+1:]]))

return reduce(fn,s1) + reduce(fn,s2)/10**len(s2)

print(''123.4567'=',str2float('123.4567'))

Python内建的filter()函数用于过滤序列。

和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素

然后根据返回值是True还是False决定保留还是丢弃该元素。filter()函数返回的是一个Iterator,也就是一个惰性序列。

温馨提示:
本文【map函数和reduce函数知识点讲解】由作者教培参考提供。该文观点仅代表作者本人,学分高考系信息发布平台,仅提供信息存储空间服务,若存在侵权问题,请及时联系管理员或作者进行删除。
我们采用的作品包括内容和图片部分来源于网络用户投稿,我们不确定投稿用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的权利,请联系我站将及时删除。
内容侵权、违法和不良信息举报
Copyright @ 2024 学分高考 All Rights Reserved 版权所有. 湘ICP备17021685号