sympy: проверить и разобрать выражение из строки - PullRequest
1 голос
/ 17 марта 2019

Я не очень знаком с sympy, и я пытаюсь, учитывая строку:

  • проверить, соответствует ли эта строка, однажды преобразованная в выражение sympy, определенному «шаблону» в моемcase "A ** a * B ** b * C ** c".
  • , если это так, проанализируйте строку, чтобы получить соответствующие символы этого шаблона.например: "foo ** 2 * bar ** 1 * toto ** 38" будет анализироваться как {"foo": 2, "bar": 1, "toto": 38}.

Я думал, что смогу использовать решение, чтобы получить все силы, но это кажется очень неэффективным ..

Приветствия

1 Ответ

0 голосов
/ 18 марта 2019

Кажется, это именно то, что вам нужно:

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})
...