Discuss / Python / map/reduce

map/reduce

Topic source

YOUTH

#1 Created at ... [Delete] [Delete and Lock User]

def normalize(name):

    if name != []:

        if isinstance(name,str):

            return name[0:1].upper() + name[1:].lower()

    return

def prod(L):

    def mul(x, y):

        return y * x

    return reduce(mul,L)

def str2float(s):

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

    i=0

    #找出小数点位置i

    while s:

        if s[i] == '.':

            break

        i = i + 1

    #转数字

    def StrToNum(s):

        return dig[s]

    def Mul(x,y):

        return x * 10 + y

    r1=reduce(Mul,map(StrToNum,s[0:i]))

    r2=reduce(Mul,map(StrToNum,s[i+1:]))

    return  r1 + (r2/(10**len(s[i+1:])))  #**为幂运算

看了你的发现是我想要的那种办法,小白一个,看了半天第一题不懂为什么这个切片可以拿到首位字母,原来是忘记了map()函数的使用方法了,受教了,感谢!!

墨迹

#3 Created at ... [Delete] [Delete and Lock User]

谢谢,不看这串代码连思路都没有。看完理解了!


  • 1

Reply