利用map和reduce编写实现字符串转化为浮点数的str2float()函数

来源:互联网 发布:淘宝助理图片不显示 编辑:程序博客网 时间:2024/06/06 20:03

 def str2float(s):    s = s.split('.')    def f1(x,y):        return x * 10 + y    def f2(x,y):        return x / 10 + y    def str2num(str):        return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[str]    return reduce(f1,map(str2num,s[0])) + reduce(f2,list(map(str2num,s[1]))[::-1])/10

这段代码用了split分切字符串,用了[::-1]翻转list。
s = '123.456'此时s[0]=='1',s[1]=='2',...,s[6]=='6'
s = s.split('.')此时s[0]=='123',s[1]=='456'
关于切片:L = list(range(100)),前10个数,每两个取一个:>>> L[:10:2][0, 2, 4, 6, 8]所有数,每5个取一个(每次去下一个5th):>>> L[::5][0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]

1 0