使用地图

时间:2017-03-14 09:38:26

标签: python-3.x lambda

如何使用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)])

1 个答案:

答案 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