• bisect模块(使用二分法将数据按顺序插入一个列表)


    bisect模块功能:使用二分法将数据按顺序插入一个列表

     

     

    该模块主要有两个函数:

    1insort_right   ====>按从小到大顺序将数据插入一个列表

    2bisect_right   ====>返回一个位置。即:如果将一个数据从小到大插入一个列表则应该插在列表中的哪个位置,只是返回一个位置,并不会真的将数据插进去。

    1、insort_right

     1 insort_right(a, x, lo=0, hi=None)
     2 
     3 """
     4 
     5 通过二分法向列表中按从小到大的顺序插入数据。a为原始列表,x为插入数据,lo为二分法初始最左边的位置,hi为二分法初始最右边位置(None时会选择列表最后一个位置)
     6 
     7 以下为使用举例:
     8 
     9 """
    10 
    11 
    12 a = [1, 2, 3, 5, 7]
    13 
    14 x= 4
    15 
    16 insort_right(a, x, lo=0, hi=None)
    17 
    18 print(a)  ===>结果为:[1, 2, 3, 4, 5, 7]
     1 insort_left(a, x, lo=0, hi=None)
     2 
     3 """
     4 
     5 功能和insort_right一样,都是将x按从小到大顺序插入a! 
     6 
     7 不同的是left是每次是猜x应该在二分法的右边,不对的话再把范围缩小到左边;right是先猜x应该在二分法的左边,不对的话再把范围缩小到右边。
     8 
     9 (感觉从效率上这两种方法没有太大本质性的区别,所以用哪个都行)
    10 
    11 """

     

     2、bisect_right 

     1 bisect_right(a, x, lo=0, hi=None):
     2 
     3 """
     4 
     5 通过二分法查找出应该把X插入到列表a(从小到大排序的列表)中的哪个位置,并再该位置返回。注意这个是返回位置而不是插入数据。lo和hi作用同上
     6 
     7 以下为举例:
     8 
     9 """
    10 
    11 a = [1, 2, 3, 5, 7]
    12 
    13 x = 4
    14 
    15 print(bisect.bisect_right(a, x))   ===>此处打印3,即应插入的位置
    16 
    17 print(a)   ===>打印结果显示a还是原来的值[1, 2, 3, 5, 7]
     1 bisect_left(a, x, lo=0, hi=None):
     2 
     3 """
     4 
     5 功能和insort_right一样,都是将x按从小到大顺序插入a! 
     6 
     7 不同的是left是每次是猜x应该在二分法的右边,不对的话再把范围缩小到左边;right是先猜x应该在二分法的左边,不对的话再把范围缩小到右边。
     8 
     9 (感觉从效率上这两种方法没有太大本质性的区别,所以用哪个都行)
    10 
    11 """

     

  • 相关阅读:
    nohup
    MYSQL提权总结
    udf提权方法和出现问题汇总
    windows 2012 抓明文密码方法
    用CPAU替代RUNAS
    MS15-034 HTTP.sys (IIS) DoS And Possible Remote Code Execution – AGGIORNAMENTO CRITICO
    php注入专题
    Mysql 另类盲注中的一些技巧
    Elasticsearch Groovy任意命令执行漏洞EXP
    linux好用的擦屁股工具
  • 原文地址:https://www.cnblogs.com/baihualin/p/10710128.html
Copyright © 2020-2023  润新知