sympy set:迭代间隔

Gia*_*nio 7 python sympy

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

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

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

 (-oo, 5] U [7, 20]
Run Code Online (Sandbox Code Playgroud)

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

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

Gia*_*nio 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})
Run Code Online (Sandbox Code Playgroud)