我使用parse_expr(“-5 + 2 * x + 3-7 * x + 5-3 * x”,评估为False)。 根据评估为False的文档,我希望保留表达式的顺序:
“当为False时,参数的顺序将保留在字符串中……”
但是结果是排序的: -7 * x-3 * x + 2 * x-5 + 3 + 5
sympy = 1.4
答案 0 :(得分:0)
它与广告中的一样
>>> u = parse_expr("-5 + 2*x + 3 - 7*x + 5 - 3*x", evaluate=False); u.args
(-5, 2*x, 3, -7*x, 5, -3*x)
但是,打印机以排序的顺序打印它们。似乎应该有一种更简单的方法来执行以下操作,但是它可以正常工作:
>>> s=StrPrinter(dict(order='none'))
>>> s._print_Add(u)
-5 + 2*x + 3 - 7*x + 5 - 3*x