将 Union 对象转换为间隔列表

Convert a Union object to a list of intervals

如何将 Sympy 中的联合对象转换为子区间列表?

例如转换为:

(-oo, a] U [b, oo)

对此:

[(-oo,a], [b,oo)]
In [1]: var("a, b")
Out[1]: (a, b)

In [2]: u = Union(Interval(-oo, a), Interval(b, oo))

In [3]: u
Out[3]: (-∞, a] ∪ [b, ∞)

In [4]: u.args
Out[4]: ((-∞, a], [b, ∞))

注:若b < a,则区间并集为(-∞, ∞)