Python 使用map()和reduce() 函数将带小数点的字符串数字转化成小数
2017-10-25 00:00
801 查看
题目:
利用
答案:
这里面用到了字符串自带的split 方法,对字符串进行了切割。
right_num 在计算时需要从后向前计算,所以采用列表的切片的操作[开始位置:结束位置:步幅],步幅为负,表示从右向左。
right_num 之所以要再*0.1 是因为 reduce 函数是每次取两个参数,这里是先取6,5。计算完再取4,如果这时不*0.1,个数位是4,但是我们需要是个数位是0 ,所以需要再*0.1
利用
map和
reduce编写一个
str2float函数,把字符串
'123.456'转换成浮点数
123.456
答案:
from functools import reduce #把字符串数字 变成单独的数字个体 def chars2num(s): chars_num = {"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9} return chars_num[s] #把这些独立的数字,拼成相应的数字 # #计算小数点左边的数字 def point_left(x,y): return x*10 + y #计算小数点右边的数字 def point_right(x,y): return x*0.1 + y #把带小数点的字符串数字转化成小数 def str2float(s): chars = s #根据小数点,将字符串分割成左右两块 chars = chars.split(".") #将左右两块字符串,分别转化成独立的数字 # #左边 chars_num1 = map(chars2num,chars[0]) #右边 chars_num2 = map(chars2num,chars[1]) #计算左边数字 left_num = reduce(point_left,chars_num1) #计算右边数字 right_num = reduce(point_right,list(chars_num2)[::-1])*0.1 #最终数据 num = left_num + right_num #精简点的写法 #num = reduce(point_left,map(chars2num,chars[0])) + reduce(point_right,list(map(chars2num,chars[1]))[::-1])*0.1 print(num) #调用函数,查看结果 str2float("123.456")
这里面用到了字符串自带的split 方法,对字符串进行了切割。
right_num 在计算时需要从后向前计算,所以采用列表的切片的操作[开始位置:结束位置:步幅],步幅为负,表示从右向左。
right_num 之所以要再*0.1 是因为 reduce 函数是每次取两个参数,这里是先取6,5。计算完再取4,如果这时不*0.1,个数位是4,但是我们需要是个数位是0 ,所以需要再*0.1
相关文章推荐
- python:内建函数、range()、map()、filter()、reduce()、sorted()、集合的使用、functools中的函数使用、MD5加密
- 高阶函数复习:利用reduce和map把字符串转为数字
- python中map、filter、reduce 函数使用方法
- python中的zip、map、reduce 、lambda函数的使用。
- python3中内建函数map()与reduce()的使用方法
- python用reduce和map把字符串转为数字的方法
- python map(),reduce()函数的使用
- python中map()函数和reduce()函数的使用
- Python高阶函数(Map、Reduce、Filter)和lambda函数一起使用 ,三剑客
- 利用map和reduce编写实现字符串转化为浮点数的str2float()函数
- python split()函数使用拆分字符串 将字符串转化为列表
- js “+” 连接字符串&数字相加 数字相加出现多位小数 函数调用单引号双引号嵌套和转义字符的使用
- python:内建函数、range()、map()、filter()、reduce()、sorted()、集合的使用、functools中的函数使用、MD5加密
- Python中的高级函数map/reduce使用实例
- 基于python的-map(),reduce(),filter()函数的使用与区别
- python用reduce和map把字符串转为数字的方法
- python的几个内建函数:apply(),filter(),map(),reduce()
- 网友面试题:C#,不使用任何Parse,TryParse,Convert方法,自写函数将数字字符串转换成整数
- js关键字typeof和instanceof的使用,以及js字符串与数字相互转化
- python中map()函数的使用