Discuss / Python / map/reduce

map/reduce

Topic source

def normalize(name):

    return name.capitalize()

from functools import reduce

def prod(L):

    return reduce(lambda x,y:x*y,L)

用lambda就不用再定义一个两个数相乘的函数了

from functools import reduce

dic={'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'0':0}

def str2float(s):

    def char(s):

        return dic[s]

    m=0

    for i in range(len(s)):

        if s[i] =='.':

            m=i

            break

    a = reduce(lambda x,y:x*10+y,map(char,s[:m]))

    b = reduce(lambda x,y:x*0.1+y,map(char,s[:m:-1]))

    return a+0.1*b

(后面三行可以改为

a = reduce(lambda x,y:x*10+y,map(char,s[:m]))

b = reduce(lambda x,y:x*10+y,map(char,s[m+1:]))*(0.1**len(s[m+1:]))

return a+0.1*b

)


  • 1

Reply