Python的这道函数式编程的题应该怎么做?

 

题主是想将代码改写成函数式的?那就这样写,将lt作为函数的参数,将计算部分作为函数体,在函数外部,调用函数返回结果,打印输出。

def add_pos(x):
  s=0
  for i in range(len(x)):
    if x[i]>0:
      s+=x[i]
  return s
lt=[2,-4,9,-5,6,13,-12,-3]
res=add_pos(lt)
print(res)

如要求用filter函数,就这样写:

def func(x):
    s=filter(lambda a:a>0,x)
    res=sum(s)
    return res

lt = [2, -4, 9, -5, 6, 13, -12, -3]
res = func(lt)
print(res)

你的具体问题是什么?
这样吗

lt = [2,-4,9,-5,6,13,-12,-3]
s = sum(filter(lambda x: x>0, lt))
print("sum=",s)