如何使用map函数实现此功能?我用lambda解决了它,但是不能用map ...
def general_poly(L):
""" L, a list of numbers (n0, n1, n2, ... nk)
Returns a function, which when applied to a value x, returns the value
n0 * x^k + n1 * x^(k-1) + ... nk * x^0 """
return lambda x: sum ([n * x ** (len (L) - i - 1) for i, n in enumerate (L)])
答案 0 :(得分:1)
map
将值x1,x2,...,
的可迭代值与函数f
映射到值f(x1),f(x2),...
的可迭代值。因此,在这种情况下,您无法将lambda表达式转换为映射表达式。
但是,您可以使用map
生成提供给列表的值,此外,您还可以将函数定义到函数中。像:
def general_poly(L):
""" L, a list of numbers (n0, n1, n2, ... nk)
Returns a function, which when applied to a value x, returns the value
n0 * x^k + n1 * x^(k-1) + ... nk * x^0 """
def f(x):
return sum(map(lambda y:y[1]*x**(len(L)-y[0]),enumerate(L,1)))
return f