сочувствую, как сравнить символ со списком

#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