SymPy:交换两个变量
SymPy: Swap two variables
在像
这样的表达式中
import sympy
a = sympy.Symbol('a')
b = sympy.Symbol('b')
x = a + 2*b
我想交换 a
和 b
以检索 b + 2*a
。我试过了
y = x.subs([(a, b), (b, a)])
y = x.subs({a: b, b: a})
但都不起作用;在这两种情况下,结果都是 3*a
,因为 b
,出于某种原因,首先被替换。
有什么提示吗?
有一个 simultaneous
参数可以传递给替换,这将确保所有替换同时发生并且不会像现在这样相互干扰。
y = x.subs({a:b, b:a}, simultaneous=True)
输出:
2*a + b
If the keyword simultaneous
is True
, the subexpressions will not be evaluated until all the substitutions have been made.
在像
这样的表达式中import sympy
a = sympy.Symbol('a')
b = sympy.Symbol('b')
x = a + 2*b
我想交换 a
和 b
以检索 b + 2*a
。我试过了
y = x.subs([(a, b), (b, a)])
y = x.subs({a: b, b: a})
但都不起作用;在这两种情况下,结果都是 3*a
,因为 b
,出于某种原因,首先被替换。
有什么提示吗?
有一个 simultaneous
参数可以传递给替换,这将确保所有替换同时发生并且不会像现在这样相互干扰。
y = x.subs({a:b, b:a}, simultaneous=True)
输出:
2*a + b
If the keyword
simultaneous
isTrue
, the subexpressions will not be evaluated until all the substitutions have been made.