SymPy:交换两个变量

时间:2016-06-28 11:49:46

标签: python sympy

在像

这样的表达式中
import sympy

a = sympy.Symbol('a')
b = sympy.Symbol('b')

x = a + 2*b

我想交换ab来检索b + 2*a。我试过了

y = x.subs([(a, b), (b, a)])
y = x.subs({a: b, b: a})

但不起作用;结果为3*a,在b这两种情况下,dbWriteTable(con, 'topics',as.data.frame(topics), row.names = NA, overwrite = FALSE, append = TRUE, field.types = NULL) 由于某种原因首先被替换。

任何提示?

1 个答案:

答案 0 :(得分:4)

有一个simultaneous参数可以传递给替换,这将确保所有替换同时发生并且不会像现在那样相互干扰。

y = x.subs({a:b, b:a}, simultaneous=True)

输出

2*a + b

From the docs for subs

  

如果关键字simultaneousTrue,则在完成所有替换之前,不会评估子表达式。