在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
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,也就是一个惰性序列。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
除了python人工智能还可以用哪些编程语言实现?
关注人工智能技术方面的朋友看到这个标题肯定会说,人工智能首选编程语言就是python。是的,不可否认python因为简单易学,而且它可以无缝的与数据结构和其他常用的AI算法同时使用。很多机遇python的类库都可以在AI中得到广泛的使用。所以大家公认python是人工智能首选语言,但是除了python之外,人工智能还可以用哪些编程语言实现呢?
11966
2019-06-20 18:04:49
Django能开发哪些类型的网站
开发者采用Django框架,不需要写太多的代码就能完成一个网站的应用程序。因此Django成为目前Python开发者首选的Web开发框架。目前使用Django框架能开发哪些类型的网站呢?
8102
2020-08-24 11:41:59
Python工程师需要学习哪些知识
Python工程师需要学习哪些知识?Python开发需要熟悉Linux系统及Django或Tornado、Flask等开发框架;会灵活运用JavaScript、HTML前端开发有jQuery、Bootstrap、AngularJS;熟悉MySQL/Oracle数据库,SQL,Hive;高并发、大数据处理;算法和数据结构。
7822
2020-09-02 15:40:06
Python 新版本中的 6 个新特性,你去体验了么?
两周之前(2021年10月4日),一个新的Python版本发布了,Python 3.10。在新的版本中,Python 添加了独特且有价值的功能,同时删除了一些旧功能。我们可以将任何新软件版本中添加或删除的功能归为多个类别,例如语法特性、添加到默认库或对现有特性的改进。
7126
2021-10-22 11:40:26
如何使用开发者工具查看HTTP协议的通信过程?
如何使用开发者工具查看HTTP协议的通信过程?Http是一个基于请求/响应模式的,无状态的协议。因为协议本身无状态,所以有时候需要记录状态,如登录之后就处于登录状态。学习查看HTTP协议的通信过程了解每项记录都是请求+响应的过程。
7609
2021-12-20 10:53:52
热门文章
- 前端是什么
- 前端开发的工作职责
- 前端开发需要会什么?先掌握这三大核心关键技术
- 前端开发的工作方向有哪些?
- 简历加分-4步写出HR想要的简历
- 程序员如何突击面试?两大招带你拿下面试官
- 程序员面试技巧
- 架构师的厉害之处竟然是这……
- 架构师书籍推荐
- 懂了这些,才能成为架构师 查看更多
扫描二维码,了解更多信息
