#python #sympy
Вопрос:
Я использую sympy и хочу сравнить символ со списком, подобным этому :
gt;gt;gt; sympy.sympify("Eq(x,[])")
но это вызывает ошибку : sympy.core.sympify.SympifyError: SympifyError: []
однако это работает с набором :
gt;gt;gt; sympy.sympify("Eq(x,{})") Eq(x,{})
почему это не работает со списком и как сравнить символ со списком ?
Комментарии:
1. В SymPy нет типа списка, потому что выражения симпатии неизменяемы, а списки изменяемы. Однако существует символический кортеж.
Ответ №1:
Цель дизайна SymPy состоит в том, чтобы не допускать в качестве аргументов объекты, не связанные с симпатией, поэтому существует сильное предубеждение, что это не сработает. Однако вы можете использовать кортеж (который может быть представлен в Tuple
качестве аргумента:
gt;gt;gt; Eq(x, ()) Eq(x, ()) gt;gt;gt; _.subs(x, ()) # and _.subs(x, 1) -gt; False True