利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456
时间: 2023-04-27 19:00:10 浏览: 147
【Python】利用map和reduce编写一个str2float函数,把字符串’123.456’转换成浮点数123.456
可以使用map将字符串中的每个字符转换成数字,然后使用reduce将数字组合成浮点数。具体实现如下:
```python
from functools import reduce
def str2float(s):
def char2num(c):
return {'': , '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[c]
nums = map(char2num, s.replace('.', ''))
point = len(s) - s.index('.') - 1 if '.' in s else
def combine(x, y):
return x * 10 + y
return reduce(combine, nums) / 10 ** point
```
首先,定义了一个char2num函数,用于将字符转换成数字。然后,使用map将字符串中的每个字符都转换成数字,并将小数点去掉。接着,使用replace函数将小数点替换成空格,然后使用len函数和index函数计算小数点的位置,得到小数点后面的位数。最后,使用reduce将数字组合成浮点数,并除以10的point次方,得到最终结果。
阅读全文