将函数列表与python中的参数列表进行匹配

时间:2018-10-18 16:41:06

标签: python numpy

我有一个用np.poly1d创建的不同多项式的列表:

 polys = [p1,p2,...,pn]

我想知道采用这些多项式的特定参数的值:

 xs = [8.1, 2.3, ..., 4.2] #nvalues

我想要的结果是:

 ys = [p1(8.1), p2(2.3), ..., pn(4.2)] #I want the numeric values.

3 个答案:

答案 0 :(得分:1)

[poly(x) for (poly, x) in zip(polys, xs)]

我认为您要做的是将两个列表一起zip,然后将第一个列表中的函数应用于第二个列表中的值。

答案 1 :(得分:1)

您可以简单地使用zip来获得(function, value)对的可迭代对象,以便可以调用function(value)

演示:

>>> polys = [lambda x: x, lambda x: x**2, lambda x: x**3]
>>> xs = [2, 4, 6]
>>> 
>>> ys = [f(x) for f, x in zip(polys, xs)]
>>> ys
[2, 16, 216]

答案 2 :(得分:0)

ys = []
for p, val in zip(polys, xs):
    ys.append(p(val))