map&reduce
来源:互联网 发布:虚拟按键软件代码 编辑:程序博客网 时间:2024/06/06 07:12
首先,是一个函数范例,str2int函数。
# -coding:utf-8-from functools import reducedef str2int(s): def f1(x,y): return x*10+y def f2(s): return {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s] return reduce(f1,map(f2,s))
当然了,python已提供int()函数来实现相同的功能。
第二部分函数示例是将用户提供的不规则大小写的英文变为首字母大写的规范方式。
# coding:utf-8-def caplize(s): return s[0:1].upper()+s[1:].lower()#测试L1=['aDam','JacK','JUlian']L2=list(map(caplize,L1))print(L2)
当然了,python已提供capitalize()函数来实现相同的功能。
第三部分,编写一个prod()函数,可以接受一个list并利用reduce()求积。
# -coding:utf-8-from functools import reducedef prod(L): def f1(x,y): return x*y product=reduce(f1,L) return productprint('3*5*7*9=',prod([3,5,7,9]))
最后一部分,利用map和reduce编写一个str2float函数,把字符串’123.456’转换为浮点数123.456。
# -coding:utf-8-from functools import reducedef str2float(s): def f1(s): return {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'.':'.'}[s] def f2(x,y): return x*10+y def f3(x,y): return 0.1*x+y L=list(map(f1,s)) if '.' in L: a=L.index('.') p1=reduce(f2,L[0:a]) m=[] i=-1 while i>(a-len(L)): m.append(L[i]) i=i-1 p2=reduce(f3,m) return p1+0.1*p2 else: return float(s)
总结:
map(f1,Iterable)函数接受两个参数,首先是函数f1,其次是Iterable,map将f1依次作用在Iterable序列中的每个元素上,并将结果作为新的Iterable返回。
reduce(f1,Iterable)函数将结果依次与序列的下一个元素进行累计计算。
阅读全文
0 0
- map/reduce
- map reduce
- Map/Reduce
- map reduce
- Map Reduce
- map reduce
- map-reduce
- Map-Reduce
- Map Reduce
- Map Reduce
- Map/Reduce
- map&reduce
- map/reduce
- map/reduce
- map/reduce
- map/reduce
- map/reduce
- Map-Reduce
- 推箱子
- erlang gen_fsm源码分析
- Selenium--显示等待和隐式等待
- C语言操作符的介绍及总结
- Jupyter notebook和pandas的基本使用
- map&reduce
- 学习python:语法(一)
- C#使用GeoJSON点集合创建类型为ArcGIS Geometry的外接正方形
- 2017 开放学术精准画像大赛
- numpy缩放图片/调整图片大小
- C++类-1
- C&C++搭建环境——微软IDE:Visual Studio
- append()函数
- FTP:基础概念及使用