Discuss / Python / 最简单的解法

最简单的解法

Topic source

# -*- coding: utf-8 -*-

from functools import reduce

def str2float(s):

    m = s.index('.')

    new_s=s[:m]+s[m+1:]

    def char2num(s):

        digits = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}

        return digits[s]

    return reduce(lambda x,y:x*10+y,map(char2num,new_s))/10**(len(new_s)-m)


  • 1

Reply