sympy:从字符串检查并解析表达式

时间:2019-03-17 20:53:59

标签: python parsing sympy

我对sympy不太熟悉,我尝试给出一个字符串:

  • 检查该字符串(一旦转换为sympy表达式)是否匹配特定的“模式”,在我的情况下为“ A ** a * B ** b * C ** c”。
  • 如果是,则分析字符串以获取该模式的相应符号。例如:“ foo ** 2 * bar ** 1 * toto ** 38”将被解析为{“ foo”:2,“ bar”:1,“ toto”:38}。

我认为我可以使用Solve来获得所有功能,但这似乎非常无效。

欢呼

1 个答案:

答案 0 :(得分:0)

这似乎正是您所需要的:

from sympy.parsing.sympy_parser import parse_expr

string = "foo**2*bar**1*toto**38"
parsed = parse_expr(string)
print(parsed.as_powers_dict())  
# output: defaultdict(<class 'int'>, {bar: 1, foo: 2, toto: 38})