如何避免Sympify自动删除括号

时间:2018-01-26 13:38:45

标签: python sympy

我们说我有以下字符串

str1 = "a*(-d*(b+d)+d*(e*f))"

如果我同意,结果是

a*(d*e*f - d*(b + d))

但我不希望Sympy放弃这些括号。我想最后的表达是

a*(d*(e*f) - d*(b + d))

如何做到这一点?

2 个答案:

答案 0 :(得分:0)

那是known buggoogle code archive中的相同错误。

如果您按照谷歌代码存档链接,您将找到一个可能修复您的问题的补丁。

除此之外,你无能为力。问题的状态仍为open

还有一些你可能觉得有趣的pull request,因为它可能解决了这个问题。

答案 1 :(得分:0)

SymPy中的产品会自动展平。

您可以使用Mul(..., evaluate=False)手动避免此操作,例如

a*(Mul(d, e*f, evaluate=False) - d*(b + d))