python一个有趣的模块,bisect,感觉挺有趣,怎么有趣呢,下面来给你道来。
我们先生成一个list
代码语言:javascript复制data=[4,8,7,1]
data.sort()
打印这个list
代码语言:javascript复制[1,4,7,8]
导入 bisect
代码语言:javascript复制import bisect
插入数据
代码语言:javascript复制bisect.insort(data,3)
打印data
代码语言:javascript复制[1, 3, 4, 7, 8]
可见插入后没有打破原来的list排序
我们再使用领一个函数
代码语言:javascript复制print(bisect.bisect(data,2))
打印1
这里是打印的插入的位置。但是不会真正的插入
bisect_left 和 bisect_right 函数,该函数用入处理将会插入重复数值的情况,返回将会插入的位置
代码语言:javascript复制print(bisect.bisect_left(data,2))
print(bisect.bisect_right(data,2))
代码语言:javascript复制结果:
1
1
不会插入的,但是
insort_left 和 insort_right 就是插入
代码语言:javascript复制bisect.insort_right(data,2)
bisect.insort_left(data,2)
执行结果
代码语言:javascript复制[1, 2, 2, 4, 7, 8]
结果一样,插入不一样。
开源地址:https://github.com/liwanlei/
qq群:194704520