Python:列表函数和lambda表达式

Python:列表函数和lambda表达式,python,function,lambda,reduce,Python,Function,Lambda,Reduce,所以我需要做一个函数,把数字的平方和到n,只用一个返回值 我试过: from functools import reduce def soma_quadrados(n): return sum(list(reduce(lambda x: x**2, list(range(1,n+1))))) 这导致了错误:lambda接受1个位置参数,但给出了2个位置参数 我也试过了 return sum(list(reduce(lambda x: x**2, n))

所以我需要做一个函数,把数字的平方和到n,只用一个返回值

我试过:

    from functools import reduce

    def soma_quadrados(n):
        return sum(list(reduce(lambda x: x**2, list(range(1,n+1)))))
这导致了错误:lambda接受1个位置参数,但给出了2个位置参数

我也试过了

    return sum(list(reduce(lambda x: x**2, n)))
这就产生了错误:reducearg2必须支持迭代

我该怎么办? 提前感谢

减少两个参数的传递:到目前为止累积的结果和下一个值。您的lambda不接受第一个结果参数

如果要生成所有平方的和,请将“和”与生成器表达式一起使用:

sum(i ** 2 for i in range(1, n + 1))
sum(map(lambda i: i ** 2, range(1, n + 1)))
或者使用map将整数映射到其平方,以代替生成器表达式:

sum(i ** 2 for i in range(1, n + 1))
sum(map(lambda i: i ** 2, range(1, n + 1)))
如果必须使用reduce,请将其汇总为:

reduce(lambda r, i: r + i ** 2, range(1, n + 1), 0)

“你为什么认为你需要减价?”贝雷尔也要求减价,忘了提了。减少、过滤或映射