python - 重新排列 sympy 输出
问题描述
有没有办法控制 sympy 输出表达式的顺序?例如:
>>> p
a*(-b*exp(x) + 1)
我可以强迫同情写吗
a*(1 - b*exp(x))
反而?
(如果有人想知道 - 它通过 pylatex 直接进入 LaTeX 文档,因此出于格式化原因,顺序对我很重要)
解决方案
恐怕没有办法做到这一点。我认为的主要问题是,对于涉及减号的总和来说,顺序自然是“错误的”。某些情况已得到修复,例如1 - x
您可能在
https://github.com/sympy/sympy/pull/15985中预期的打印
还有另一个开放 PR 可以更普遍地解决问题:
https ://github.com/sympy /sympy/issues/16090
编辑:有init_printing(order='old')
一个我以前不知道的:
In [26]: a*(1 - b*exp(x))
Out[26]:
⎛ x ⎞
a⋅⎝- b⋅ℯ + 1⎠
In [27]: init_printing(order='old')
In [28]: a*(1 - b*exp(x))
Out[28]:
⎛ x⎞
a⋅⎝1 - b⋅ℯ ⎠
In [29]: latex(a*(1 - b*exp(x)))
Out[29]: 'a \\left(1 - b e^{x}\\right)'
我没有进行过广泛的测试,但它似乎按照我想要的方式工作。
推荐阅读
- python - zip函数python - 奇怪的行为
- javascript - 如何将函数应用于从本地存储创建的表
- awk - 对于字段中的每个不同出现,打印具有关联的最大值的行
- linux - 在 Go 中调用 mremap 不起作用,但没有错误
- maven - 添加到 POM.xml 文件的依赖项不会显示在 Maven 依赖项下
- amazon-ec2 - Ansible 2.8 无法使用 [0] 表示法解析动态 EC2 主机
- c++ - 如何使用结构体、类型定义和模板?
- azure-sql-database - 用户无法查询 azure sql 数据库中的一个特定表 - 获取错误代码 8630
- java - JUnit4:测试类型为 ArrayList 的读取文件方法
- python-3.x - 通过python中的文件查询MariaDB