+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2020-04(15)

2020-05(28)

2020-06(46)

2020-07(29)

2020-08(30)

pyhthon学习笔记:map/reduce

发布于2021-04-03 19:58     阅读(1004)     评论(0)     点赞(7)     收藏(5)


0

1

2

3

4

5

6

7

pyhthon学习笔记:map/reduce

提问1:利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:[‘adam’, ‘LISA’, ‘barT’],输出:[‘Adam’, ‘Lisa’, ‘Bart’]:

回答:
def normalize(name):
r=name[0].upper()+name[1:].lower()
return r
测试:
L1 = [‘adam’, ‘LISA’, ‘barT’]
L2 = list(map(normalize, L1))
print(L2)
在这里插入图片描述提问2:Python提供的sum()函数可以接受一个list并求和,请编写一个prod()函数,可以接受一个list并利用reduce()求积:
def prod(L):
def fn(x,y):
return x*y
return reduce(fn,L)
测试:
print(‘3 * 5 * 7 * 9 =’, prod([3, 5, 7, 9]))
if prod([3, 5, 7, 9]) == 945:
print(‘测试成功!’)
else:
print(‘测试失败!’)
在这里插入图片描述提问3:利用map和reduce编写一个str2float函数,把字符串’123.456’转换成浮点数123.456:
思路:
1.首先定义
fn:输入两个数,输出一个数字,例如输入2,3,输出23
char2num:将字符串转换成数字,例如输入‘12345’,输出list:[1,2,3,4,5]
2.找到小数点位置
n=s.index(’.’)
3.用map函数分别生成小数点前后的list
s1=list(map(int,[x for x in s[:n]]))
s2=list(map(int,[x for x in s[n+1:]]))
即:123.321输出成[1,2,3]和[3,2,1]
4.用reduce函数计算小数点前后对应的数字,并将其合并
return reduce(fn,s1)+reduce(fn,s2)/10**len(s2)

回答:
def str2float(s):
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}
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)

str2float(‘123.321’)
123.321
在这里插入图片描述

s.split
split方法的返回结果是一个字符串数组,在字符串S中出现的每个“ ”的位置都要进行分解,20是指返回数组中共有20个元素,

0

1

2

3

4



所属网站分类: 技术文章 > 博客

作者:爱妃不要跑

链接: https://www.pythonheidong.com/blog/article/915675/cde3098b086db4e2274a/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

7 0
收藏该文
已收藏

评论内容:(最多支持255个字符)