自己文書化キーを持つ辞書のリストに方程式を解析する方法を次に示します。このアプローチは、Jmac の非常に優れた回答と精神的に似ています。
eq = 'x^10+6x^4-5x^2+x-11'
patt = r'(?P<sign>[-+]?)(?P<coeff>\d*)(?P<x>x?)(?:\^(?P<exp>\d+))?'
rgx = re.compile(patt)
eq_parts = [m.groupdict() for m in rgx.finditer(eq)][0:-1]
for eqp in eq_parts:
print eqp
出力:
{'x': 'x', 'coeff': '', 'exp': '10', 'sign': ''}
{'x': 'x', 'coeff': '6', 'exp': '4', 'sign': '+'}
{'x': 'x', 'coeff': '5', 'exp': '2', 'sign': '-'}
{'x': 'x', 'coeff': '', 'exp': None, 'sign': '+'}
{'x': '', 'coeff': '11', 'exp': None, 'sign': '-'}