代码前言
import sympy
x, y = sympy.symbols("x, y")
reps = [(y, x**2), (x, 2)]
代码示例
>>> (x + y).subs(reps)
6
>>> (x + y).subs(reversed(reps))
x**2 + 2
这似乎是理想的行为,因为上面的示例来自http://docs.sympy.org/dev/modules/core.html#sympy.core.basic.Basic.subs
上的官方SymPy文档如果我不想关心替换顺序,那么解决方案是什么?我只想让subs
替换每个变量,因为表达式仍有变化。
目前,我正在使用以下解决方法:
>>> (x + y).subs(100 * reps)
6
>>> (x + y).subs(reversed(100 * reps))
6