我从 sympy python lib 开始。
如果,我有这个表情
from sympy.abc import a,b,c,p,q
e = p * ( a + b ) + q * ( a + c )
我如何使用a,b,c
作为因素?喜欢
a(p+q) + b*p + c*q
from sympy.abc import a,b,c,p,q
from sympy import collect, expand
e = p * ( a + b ) + q * ( a + c )
print e
print expand(e)
print collect(expand(e),a)
collect
确实是你想要的功能。您可以将多个符号作为集合变量传递以将它们全部收集。正如您所注意到的,collect
不会先扩展您的表达式,因此如果您想要这样做,您必须自己使用expand
.
In [15]: collect(e.expand(), [a, b, c])
Out[15]: a⋅(p + q) + b⋅p + c⋅q