python-用任意参数替换sympy函数

这应该是一件容易的事,但是我很难让它在Sympy中工作.
我想用带有特定公式的任意参数替换未定义的函数,例如:

from sympy import *
var('a b c')
f= Function('f')
test= f(a+b)
lin= test.subs({f(c):2*(c)})
print(lin)

我要打印出来

2*(a+b)

但是,为此,我必须使用

lin= test.subs({f(a+b):2*(a+b)})

我是否必须将f定义为类才能进行替换?

解决方法:

当您以这种方式执行advanced expression manipulation时(好吧,您的示例仍然很简单),replace method非常有用:

test.replace(f, lambda arg: 2*arg)  # returns: 2*x + 2*y

从文档:

[replace] Traverses an expression tree and performs replacement of matching subexpressions from the bottom to the top of the tree.

文档的第二个示例显示,任何函数都可以用对其参数起作用的另一个函数替换,如上例所示.

上一篇:如何在DataFrame的字符串列中应用正则表达式替换?


下一篇:python – 替换多次出现的字符串中的模式