Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要操纵一些实数区间。基本上我会执行联合和交叉。通过这种方式,我总是获得一组实数,它们是有限数量区间的并集。
目前我正在为 python 使用 sympy。我的问题是:给定一个 sympy 集,是否有一种(很好的)方法来迭代它的间隔?
一种可能性是使用集合的 repr 字符串,它看起来像这样:
(-oo, 5] U [7, 20]
然后使用正则表达式将其解包。
有没有更好,更蟒蛇的方式来做到这一点?
所以,我会自己回答。我需要使用类 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})