return reduce(lambda x,y:x*10+y, map(int,s.replace('.','')))/(10**(len(s)-s.find('.')-1))
#这个程序是楼下Aqua这位的
#思路是把s这个字符串,不看小数部分,整个数据全部提取出来,转换成int类型,再除掉10的倍数,得到想要的结果
#以'123.456'为例,这里先用map,转换成了一个列表,即[1, 2, 3, 4, 5, 6],然后用reduce把他们处理得到123456这个结果
#随后(10**(len(s)-s.find('.')-1))这一步是为了得到123.456变成123456是放大了多少倍,就除掉多少倍
#len(s)-s.find('.')-1 这里为什么减一,是因为这个是计算10的倍数,而s.find('.')找到的是'.'的索引值,不是位置
准确来说,用mapd得到的不是一个列表,而是Iterator
Sign in to make a reply
Nectar
return reduce(lambda x,y:x*10+y, map(int,s.replace('.','')))/(10**(len(s)-s.find('.')-1))
#这个程序是楼下Aqua这位的
#思路是把s这个字符串,不看小数部分,整个数据全部提取出来,转换成int类型,再除掉10的倍数,得到想要的结果
#以'123.456'为例,这里先用map,转换成了一个列表,即[1, 2, 3, 4, 5, 6],然后用reduce把他们处理得到123456这个结果
#随后(10**(len(s)-s.find('.')-1))这一步是为了得到123.456变成123456是放大了多少倍,就除掉多少倍
#len(s)-s.find('.')-1 这里为什么减一,是因为这个是计算10的倍数,而s.find('.')找到的是'.'的索引值,不是位置