7

我需要操纵一些实数区间。基本上我会执行联合和交叉。通过这种方式,我总是获得一组实数,它们是有限数量区间的并集。

目前我正在为 python 使用 sympy。我的问题是:给定一个 sympy 集,是否有一种(很好的)方法来迭代它的间隔?

一种可能性是使用集合的 repr 字符串,它看起来像这样:

 (-oo, 5] U [7, 20]

然后使用正则表达式将其解包。

有没有更好,更蟒蛇的方式来做到这一点?

4

1 回答 1

8

所以,我会自己回答。我需要使用类 Union 的属性 args。这给出了一个正在考虑其并集的集合的元组:

>>> union
[2.0, 10.0) U [20.0, 30.0) U {1.0, 15.0, 17.0, 40.0}
>>> union.args
([2.0, 10.0), [20.0, 30.0), {1.0, 15.0, 17.0, 40.0})
于 2012-07-02T10:29:33.953 回答