Discuss / Python / 这么简单的题目,还要用map/reduce

这么简单的题目,还要用map/reduce

Topic source

liuwei2262

#1 Created at ... [Delete] [Delete and Lock User]
from functools import reduce

def str2num(s):
    if s.isdigit():
        return int(s)
    return float(s)

def calc(exp):
    ss = exp.split('+')
    ns = map(str2num, ss)
    return reduce(lambda acc, x: acc + x, ns)

def main():
    r = calc('100+200+345')
    print('100 + 200 + 345 =', r)
    r = calc('99+88+7.6')
    print('99 + 88 + 7.6 =', r)

main()

liuwei2262

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

100 + 200 + 345 = 645

99 + 88 + 7.6 = 194.6


  • 1

Reply