我需要操纵一些实数区间。基本上我会执行其工会和交叉点。这样,我总是获得一组实数,它们是有限数量间隔的联合。
此刻我正在使用syy for python。我的问题是:给定一个同情集,是否有一种(好的)方法来迭代它的间隔?
一种可能性是使用集合的repr字符串,如下所示:
(-oo, 5] U [7, 20]
然后使用正则表达式解压缩它。
有没有更好,更蟒蛇的方法来做到这一点?
答案 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})