我们说我有以下字符串
str1 = "a*(-d*(b+d)+d*(e*f))"
如果我同意,结果是
a*(d*e*f - d*(b + d))
但我不希望Sympy放弃这些括号。我想最后的表达是
a*(d*(e*f) - d*(b + d))
如何做到这一点?
答案 0 :(得分:0)
那是known bug。 google code archive中的相同错误。
如果您按照谷歌代码存档链接,您将找到一个可能修复您的问题的补丁。
除此之外,你无能为力。问题的状态仍为open
还有一些你可能觉得有趣的pull request,因为它可能解决了这个问题。
答案 1 :(得分:0)
SymPy中的产品会自动展平。
您可以使用Mul(..., evaluate=False)
手动避免此操作,例如
a*(Mul(d, e*f, evaluate=False) - d*(b + d))