美文网首页
Python区间库interval快速入门

Python区间库interval快速入门

作者: 乂尤先生 | 来源:发表于2020-11-06 14:56 被阅读0次

    前言

    使用python进行数据处理的时候,有时会遇到判断一个数是否在一个区间内的 操作,我们可以使用if else进行判断,但是,既然使用了python,那我们当然是想找一下有没有现成的东西可以用,事实上,可以用interval这个库来完成我们目前需要的操作。

    区间判断

    最基础的区间判断操作就是先创建一个区间,然后使用in来判断一个数是否存在于区间之内

    from interval import Interval
    #创建实例
    zoom_2_5 = Interval(2,5)
    print(zoom_2_5)
    #左右边界均包含在内,为全闭区间
    #[2..5]
    print(2 in zoom_2_5)
    #True
    print(6 in zoom_2_5)
    #False
    

    可以从上面的代码中看到,我们先使用interval创建一个集合,然后将我们想要比较的数用in即可得到结果,但是,我们都知道,我们的集合其实是有分开区间和闭区间的,上面的代码中,创建的是[2,5]的区间集合,下面我们讲一下如何创建开区间

    from interval import Interval
    #创建一个左半开区间
    zoom_2_5 = Interval(2,5,lower_closed = False)
    print(zoom_2_5)
    #(2..5]
    print(2 in zoom_2_5)
    #False
    #创建一个右半开区间
    zoom_1_5 = Interval(1,5,upper_closed = False )
    print(zoom_1_5)
    #[1..5)
    print(1 in zoom_1_5)
    #True
    

    从上面的代码中可以看到,在使用Interval创建区间的时候,使用lower_closed参数,我们可以将区间下限设置为一个开区间,这样比较2是否在这个区间内的时候,返回的结果是False,类似的,如果区间上限设置为开区间,可以将upper_closed设置为False,如果想直接创建一个开区间,可以直接设置closed为False

    区间合并,判断是否交叉重复及是否比邻

    interval有三种区间的操作方法,分别是join,overtaps,adjacent_to,以下将演示这三个方法的用法

    from interval import Interval
    
    zoom_1_3 = Interval(1,3,lower_closed=False)
    zoom_3_5 = Interval(3,5,lower_closed=False)
    #合并
    zoom_1_5 = zoom_1_3.join(zoom_3_5)
    print(zoom_1_5)
    zoom_1_3 = Interval(1,3,upper_closed=False)
    zoom_3_5 = Interval(3,5,upper_closed=False)
    #判断交集
    print(zoom_1_3.overlaps(zoom_3_5))
    zoom_0_1 = Interval(0, 1, upper_closed=False)
    zoom_1_3 = Interval(1, 3, lower_closed=False)
    zoom_1_3_ = Interval(1, 3)
    #测试是否比邻
    print(zoom_0_1.adjacent_to(zoom_1_3))#False
    #反向测试
    print(zoom_1_3.adjacent_to(zoom_0_1))#False
    #zoom_0_1 和 zoom_1_3_ 比邻
    print(zoom_0_1.adjacent_to(zoom_1_3_))#True
    #比邻是指: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

    相关文章

      网友评论

          本文标题:Python区间库interval快速入门

          本文链接:https://www.haomeiwen.com/subject/ttptbktx.html