from functools import reduce def str2float(s): m = s.split('.') return reduce(lambda x, y: x * 10 + y, map(char2num, m[0])) + reduce(***lambda j, k: j***, map(char2num, m[1])) def char2num(m): return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5':5, '6': 6, '7': 7, '8': 8, '9': 9}[m] print('str2float(\'123.456\') =', str2float('123.456'))
请问第二个reduce的j,k要肿么写.
lambda在取值的时候貌似是从左往右的顺序, 0.abcd=a0.1 + b0.01 + c0.001 +... =((a + b0.1)0.1 + c0.1)*0.1 + ... 那这样的话要像写成整数部分那样,j,k就得从右往左取值... <(0_o)>
Sign in to make a reply
-绿贱超人-
请问第二个reduce的j,k要肿么写.
lambda在取值的时候貌似是从左往右的顺序, 0.abcd=a0.1 + b0.01 + c0.001 +... =((a + b0.1)0.1 + c0.1)*0.1 + ... 那这样的话要像写成整数部分那样,j,k就得从右往左取值... <(0_o)>