Sympy Set Theory-如何减少数学表达式



假设我定义了nSympy集。设置s为:

s = FiniteSet('red', 'yellow', 'green')

然后我还有三套:

a = FiniteSet('red')
b = FiniteSet('yellow')
c = FiniteSet('green')

显然,abcs的子集。当我让sympy计算这三个子集的Union时,我将得到s但症状作为输出:

>>>Union(a,b,c)
{'green', 'yellow', 'red'}

因此,我希望获得s

有没有办法用Sympy实现这一点?

您的期望值可能需要格式塔转换。您正在使用Python,并且已经为变量分配了值。您的期望是,当您打印与变量s具有相同值的变量d时,您将看到变量s——但这不是print(variable)的作用:它打印值,而不是任何/所有相同变量的列表。

但您可以询问SymPy这两个变量是否具有相同的值:

>>> d == s
True

您也可以(仔细地(查看locals(),以找到哪个名称与d:具有相同的值

>>> L = locals()  # a dictionary of names and values
>>> [i for i in L if i != 'd' and type(L.get(i,None)) == type(d) and L[i] == d]
['s']

(但locals中任何匹配的内容都将被打印,而不仅仅是s。(

相关内容

  • 没有找到相关文章

最新更新