作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下内容,其中 a、b、c、d 都是 sympy 符号
p = a + b + 2*c + d
q = a + b + c + d
我想这样做:
p = p.subs(a + b + c + d, q)
并且想要得到这个:
p = q + c
但 p 保持不变。
我应该怎么做才能达到 p = q + c?
subs() 执行的匹配似乎正在寻找严格的排序,因此它没有拆分“2*c”项。
我应该使用replace()而不是subs()吗?
编辑:代码如下:
import sympy
a, b, c, d = sympy.symbols('a,b,c,d')
p = a + b + 2*c + d
q = a + b + c + d
r = p.subs(a + b + c + d, q)
print r
编辑#2
https://groups.google.com/forum/#!topic/sympy/b_Yv6s15Y0Q
我的问题与 groups.google 链接类似,只是在这种情况下 subs() 完成了它的工作。
最佳答案
首先对您的代码进行评论:由于您将 q 定义为 a+b+c+d 之和,因此您永远不会看到更改,即使它确实有效(但实际上没有)。其他有效的方法如下:
>>> p = a + b + 2*c + d
>>> q = var('q')
>>> p.extract_additively(a+b+c+d) + q
c + q
还有一个 extract_multiplicatively 方法。
关于python - 如何在 sympy 中插入替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27521641/
我是一名优秀的程序员,十分优秀!