from functools import reduce
def str2float(s): def char2num(s1): return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s1]
def fn(x, y): return x * 10 + y return reduce(fn, map(char2num, s.replace(".", "")))*(10**(-len(s[s.index(".") + 1:])))
print('str2float(\'123.456\') =', str2float('123.456'))
真是简洁易懂,大神!!!?
666
Sign in to make a reply
竹聿Simon
from functools import reduce
def str2float(s): def char2num(s1): return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s1]
print('str2float(\'123.456\') =', str2float('123.456'))