您的位置:首页 > 编程语言 > Python开发

python利用map和reduce实现str转float

2017-12-28 21:34 776 查看
函数介绍

map()函数:传入第一个参数为一个函数,第二个参数为一个可迭代对象Iterable,返回一个迭代器Iterator,可以用list()函数转化为一个list,其作用时第一个参数的函数一次作用于第二参数的可迭代对象的每一个元素。

reduce()函数:第一个参数为一个函数,第二个函数为一个序列,作用为第一个参数函数依次累积作用于序列的每一个元素。

代码如下:

#!/usr/bin/env python3

#* encoding:utf-8 *

#此处对于整数的处理同str2int,对于小数部分可以先转化为int,在乘以10的负的位数次方

from functools import reduce

import math

def str2float(s):

D={‘1’:1,’2’:2,’3’:3,’4’:4,’5’:5,’6’:6,’7’:7,’8’:8,’9’:9}

def char2int(s):

return D[s]

def f(x,y):

return x*10 + y

numF = 0

numL = s.split(‘.’)

for index,numS in enumerate(numL):

if index == 0:

numF = numF + reduce(f,map(char2int,numS))

else:

numF = numF + reduce(f,map(char2int,numS))*pow(10,0-len(numS))

return numF

print(str2float(‘123.56’))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐