我想问一下,是否有一种方法可以非交换地扩展Python中的方括号.例如, INPUT (x+y)**2, OUTPUT x**2 + x*y + y*x + y**2

而不是通常的输出x**2 + 2*x*y + y**2.

SymPy给出了这种交换输出,但我已经看到在MATHEMICA(非交换乘法)中非交换输出是可能的.有没有人能推荐一些非交换式扩展括号的Python代码?这将是一个很大的帮助.

推荐答案

您必须创建非交换符号:

from sympy import *
x, y = symbols("x, y", commutative=False)
expr = (x+y)**2
expr = expr.expand()
print(expr)
# out: x*y + x**2 + y*x + y**2

Python相关问答推荐

如何让 turtle 通过点击和拖动来绘制?

对整个 pyramid 进行分组与对 pyramid 列子集进行分组

如何使用pytest来查看Python中是否存在class attribution属性?

OR—Tools中CP—SAT求解器的IntVar设置值

为什么\b在这个正则表达式中不解释为反斜杠

如何使用OpenGL使球体遵循Python中的八样路径?

ruamel.yaml dump:如何阻止map标量值被移动到一个新的缩进行?

如何获取Python synsets列表的第一个内容?

为什么Python内存中的列表大小与文档不匹配?

提取数组每行的非零元素

python的文件. truncate()意外地没有截断'

ModuleNotFoundError:Python中没有名为google的模块''

合并相似列表

从列表中分离数据的最佳方式

EST格式的Azure数据库笔记本中的当前时间戳

Pandas:使列中的列表大小与另一列中的列表大小相同

如何通过特定导入在类中执行Python代码

Groupby并在组内比较单独行上的两个时间戳

有什么方法可以在不对多索引DataFrame的列进行排序的情况下避免词法排序警告吗?

多个布尔条件的`jax.lax.cond`等效项