【发布时间】:2018-01-20 04:50:48
【问题描述】:
我想定义一个函数,例如多项式,来自预因子列表。类似的东西
order = [1,0,1]
def poly(x):
res = 0
for i, o in enumerate(order):
res += o * x**i
return res
所以poly(x) 返回1 + x²。
我需要为不同的x 多次调用该函数,但前提条件相同。上面的函数每次调用都会执行for循环,效率相当低,尤其是order列表很长的时候。
如何只循环一次并为不同的x 调用结果? pythonic解决方案是什么?
【问题讨论】:
-
你有我目前能想到的最有效的解决方案
-
我会避免在每次迭代时提高功率,方法是保持先前的值,并在每次迭代时将其乘以
x。这也将消除对enumerate和i的需求。 -
如何只循环一次并为不同的 x 调用结果?什么是 pythonic 解决方案? - 甚至没有 数学 解决方案。也许您可以“隐藏”循环,但不能避免它。
-
NumPy 还有一个处理多项式求值的方法:docs.scipy.org/doc/numpy-1.12.0/reference/generated/…
标签: python