利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456


from  
         functools  
         import  
         reduce  
        

  
            

        

  
         def  
         str2float(s):  
        

  
            

         return  
         reduce  
         (  
         lambda  
         x,y:x  
         +  
         int2dec(y),  
         map  
         (str2int,s.split(  
         '.'  
         )))  
        

  
         def  
         char2num(s):  
        

  
            

         return  
         {  
         '0'  
         :  
         0  
         ,  
         '1'  
         :  
         1  
         ,  
         '2'  
         :  
         2  
         ,  
         '3'  
         :  
         3  
         ,  
         '4'  
         :  
         4  
         ,  
         '5'  
         :  
         5  
         ,  
         '6'  
         :  
         6  
         ,  
         '7'  
         :  
         7  
         ,  
         '8'  
         :  
         8  
         ,  
         '9'  
         :  
         9  
         }[s]  
        

  
         def  
         str2int(s):  
        

  
            

         return  
         reduce  
         (  
         lambda  
         x,y:x  
         *  
         10  
         +  
         y,  
         map  
         (char2num,s))  
        

  
         def  
         intLen(i):  
        

  
            

         return  
         len  
         (  
         '%d'  
         %  
         i)  
        

  
         def  
         int2dec(i):  
        

  
            

         return  
         i  
         /  
         (  
         10  
         *  
         *  
         intLen(i))  
        

  
              

        

  
         print  
         (str2float(  
         '123.456'  
         ))

以上就是本代码的全部内容了,希望对大家学习Python能够有所帮助。