当它们在列表中时,如何替换sympy.core.add.add对象的值?

时间:2017-04-19 11:44:28

标签: python loops sympy

我有一个我想在某一点评估的同情对象列表(x0 = 1,x1 = 1),我尝试在 for 循环中使用evalf和subs但是没有运气。这是我的代码:

from sympy import *
b = [3*x0**2 + 4*x1, 4*x0]
for i in b:
    i = i.subs({x0:1, x1:1})
print(b)

它返回与以前相同的列表。

1 个答案:

答案 0 :(得分:1)

在你的循环中,你根本不在b上操作。

你可以这样做。

>>> from sympy import *
>>> var('x0 x1')
(x0, x1)
>>> b = [3*x0**2 + 4*x1, 4*x0]
>>> [_.subs({x0:1, x1:1}) for _ in b]
[7, 4]

请注意,此代码分别对b中的每个表达式进行操作,因为b整体上不是表达式。