编程语言
首页 > 编程语言> > python 用map和reduce实现字符串转浮点数

python 用map和reduce实现字符串转浮点数

作者:互联网

# -*- coding: utf-8 -*-
from functools import reduce

def str2float(s):
     digits = {'0':0, '1':1, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9}
     def char2num(s):
          return digits[s]
     def to_int(x, y):
          return x*10 + y
     m = 0
     for b in s:
          if b == '.':
               s1 = map(char2num, s[:m])
               s2 = map(char2num, s[m+1:])
               num1 = reduce(to_int, s1)
               num2 = reduce(to_int, s2)/10**len(s[m+1:])
               return num1+num2
               break
          m = m+1
print('str2float(\'123.456\') =', str2float('123.456'))
if abs(str2float('123.456') - 123.456) < 0.00001:
    print('测试成功!')
else:
    print('测试失败!')

标签:map,python,123.456,浮点数,reduce,char2num,str2float,int,print
来源: https://blog.csdn.net/qq_39972217/article/details/96714081