sympy set:迭代间隔

时间:2012-07-02 10:08:18

标签: python sympy

我需要操纵一些实数区间。基本上我会执行其工会和交叉点。这样,我总是获得一组实数,它们是有限数量间隔的联合。

此刻我正在使用syy for python。我的问题是:给定一个同情集,是否有一种(好的)方法来迭代它的间隔?

一种可能性是使用集合的repr字符串,如下所示:

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

然后使用正则表达式解压缩它。

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

1 个答案:

答案 0 :(得分: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})