Discuss / Python / 尝试做第三题

尝试做第三题

Topic source

Python新上手,string 处理不够熟练,耗费时间较多。

附上第三题代码(复用了之前的str2int()和char2num()函数),还是不够简练,请指教。


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 prod(s):
    s_split = s.split(".")
    dec = s_split[0]
    frac = s_split[1]
    return str2int(dec) + 0.1 * reduce(lambda x, y: x *0.1 + y , list(map(char2num, frac))[::-1])

  • 1

Reply