Python 區間庫 interval

示例1:創建區間&檢驗左右邊界值

In [22]: from interval import Interval

# 創建實例
In [23]: a = Interval(2,5)

# 左右邊界是均包含在內,爲全閉區間
In [24]: 2 in a
Out[24]: True

In [25]: 5 in a
Out[25]: True

示例2:半閉半開區間&檢測閉區間邊界值


# b 左閉右開
In [26]: b = Interval(2, 5, lower_closed=False)

# 打印a,b
In [29]: a
Out[29]: Interval(2, 5, lower_closed=True, upper_closed=True)

In [30]: b
Out[30]: Interval(2, 5, lower_closed=False, upper_closed=True)

# 檢驗a,b是否包含左邊界值2
In [31]: 2 in a, 2 in b
Out[31]: (True, False)

# 檢驗a,b是否包含右邊界值5
In [32]: 5 in a, 5 in b
Out[32]: (True, True)

示例3:區間合併、判斷是否交叉、判斷是否比鄰


In [33]: c = Interval(1,3, lower_closed=False)

In [34]: d = Interval(3,5, lower_closed=False)

# 皆爲左閉右開
In [35]: 1 in c, 3 in d
Out[35]: (False, False)

# 合併
In [36]: e = c.join(d)

# 合併之後檢測
In [37]: 3 in e
Out[37]: True

In [39]: c
Out[39]: Interval(1, 3, lower_closed=False, upper_closed=True)

In [40]: d
Out[40]: Interval(3, 5, lower_closed=False, upper_closed=True)

# 判斷是否交叉,c、d無交集
In [43]: c.overlaps(d)
Out[43]: False

# c、e有交集
In [44]: c.overlaps(e)
Out[44]: True

# e、c 反向測試
In [45]: e.overlaps(c)
Out[45]: True

# 比鄰測試
In [52]: f = Interval(0, 1, upper_closed=False)

In [53]: g = Interval(1, 3, lower_closed=False)

In [54]: h = Interval(1, 3)

# 打印f、g
In [55]: f
Out[55]: Interval(0, 1, lower_closed=True, upper_closed=False)

In [56]: g
Out[56]: Interval(1, 3, lower_closed=False, upper_closed=True)

In [57]: h
Out[57]: Interval(1, 3, lower_closed=True, upper_closed=True)

# f、g不比鄰
In [58]: f.adjacent_to(g)
Out[58]: False

In [59]: g.adjacent_to(f)
Out[59]: False

# f、h比鄰
In [60]: f.adjacent_to(h)
Out[60]: True

# 測試具有交集的區間
In [61]: i = Interval(0,2)

# 結果不比鄰
In [62]: h.adjacent_to(i)
Out[62]: False

# 測試邊界相交
In [63]: j = Interval(2, 3)

# 結果不比鄰
In [64]: i.adjacent_to(j)
Out[64]: False

# 從以上結果可以推斷,比鄰是指:1、兩個區間相鄰的邊界值相等 2、同時這兩個邊界一個爲開區間,一個爲閉區間,即兩個區間沒有交集

注:區間解釋

數學區間是指某一範圍。分類有全開區間、全閉區間、半開半閉區間、半閉半開區間。
全開區間:表示符號爲( ),指不包括端點的區間,例如(2,4),表示實數範圍內大於2小於4範圍內的實數;
全閉區間:表示符號爲[ ],指包括端點的區間,例如[2,4],表示實數範圍內大於等於2小於等於4範圍內的實數;
半開半閉區間:表示符號爲( ],指不包括最小數據的端點,而包括最大數據的端點的區間,例如(2,4],表示實數範圍內大於2小於等於4範圍內的實數;
半閉半開區間:表示符號爲[ ),指包括最小數據的端點,而不包括最大數據的端點的區間,例如[2,4),表示實數範圍內大於等於2小於4範圍內的實數.

[a,b] 	a<=x<=b 	取值包括a、b
(a,b)	a<x<b 		取值不包括a、b
[a,b)	a<=x<b		取值包括a,不包括b
(a,b]	a<x<=b 		取值不包括a,包括b
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章