將數值型字符串轉換成數值。

看了前面大神寫的文章和代碼,不知道自己在重要地方理解對不對,希望有大神給指點一下。

from functools import reduce
def str2float(num):
    def pro(x,y):
        return 10*x+y
    n=num.index('.')
    #取小數點所在的位置
    str1=list(map(int,[x for x in num[:n]]))
    #x for x in num[:n]將num映射成list,將num中小數點前的數字映射出來
    str2=list(map(int,[x for x in num[n+1:]]))
    #x for x in num[n+1:]將num映射成list,將num中小數點後的數字映射出來
    return reduce(pro,str1)+reduce(pro,str2)/(10**len(str2))
print('\'123.4567\'=',str2float('123.4567'))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章