在没有像 sympy 这样的外部库的情况下拆分多项式表达式中的项

splitting terms in a polynomial expression without external libraries like sympy

假设我输入了 "1+2x+3x^2""1-2x+3x^2"

我如何创建一个函数来拆分并列出每个术语,例如 [1, 2x, 3x^2][1, -2x, 3x^2]。 我已经为此困惑了一段时间,目前我正在使用的函数仅在“+”处分开,因此要获得像 [1, -2x, 3x^2] 这样的列表,我必须输入 "1+-2x+3x^2"

注意:我不会使用复杂的多项式,而是使用不包含括号或分数的看起来简单的多项式。

import re

s = '1+2x^2-3x^-3'

s = re.sub('\^-', 'neg', s) # trick to deal the negative powers
print(s)
s=s.replace('-','+-')
s=s.replace('neg','-')
sub = s.split('+')

print(sub)

这将正确拆分您的负幂变量。