首页 > 编程 > Python > 正文

python map reduce函数初学

2019-11-09 19:41:36
字体:
来源:转载
供稿:网友
# from collections import Iterator# from collections import Iterable# PRint(isinstance([],Iterator))# print(isinstance([],Iterable))# isinstance(iter([]),Iterator)#使用iter函数来把迭代对象变成迭代# def f(x):# return x*x## r=map(f,[1,2,3])# print(list(r))# print(list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9])))#map将传入的函数依次作用到序列的每一个元素上# from functools import reduce# def fn(x,y):# return x*10 + y# def char2num(s):# return{'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s]# print(reduce(fn,map(char2num,'13579')))#reduce函数,将函数作用在整个序列上# def is_odd(n):# return n%2==1# list(filter(is_odd,[1,2,4,5,6,9,10,15]))#filter函数,将传入的函数作用于序列的每一个元素,根据其返回结果决定是否保留# #首字母大写# str='this is map'# print('str.capitalize():',str.capitalize())#课后习题def normalize(name): return name.capitalize()r=map(normalize,['adam','hanm','hana'])print(list(r))from functools import reducedef prod(L): return reduce(lambda x,y:x*y,L)print(prod([3,5,7,9]))#map reduce编写str2float函数def str2float(s): def fn(x,y): return x*10+y n=s.index('.')#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.456'))
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表