学习bisect模块保持列表排序

来源:互联网 发布:淘宝和快递合作多少钱 编辑:程序博客网 时间:2024/05/02 00:20
学习bisect模块保持列表排序

这是一个免费的二分查找实现和快速插入有序序列的工具。也就是说,你可以使用:

>>> import bisect 
>>> bisect.insort(list, element) 
你已將一个元素插入列表中, 而你不需要再次调用 sort() 来保持容器的排序, 因为这在长序列中这会非常昂贵.

这个模块只有几个函数,一旦决定使用二分搜索时,立马要想到使用这个模块 

1.当x在列表中存在时,返回方法中指定的left、right位置的索引或插入在x的左侧或右侧

2.当x在列表中不存在时,返回应该插入的位置索引或插入x中

[python] view plaincopyprint?
  1. import bisect  
  2.   
  3. L = [1,3,3,6,8,12,15]  
  4. x = 3  
  5.   
  6. x_insert_point = bisect.bisect_left(L,x)  #在L中查找x,x存在时返回x左侧的位置,x不存在返回应该插入的位置..这是3存在于列表中,返回左侧位置1  
  7. print x_insert_point  
  8.   
  9. x_insert_point = bisect.bisect_right(L,x)  #在L中查找x,x存在时返回x右侧的位置,x不存在返回应该插入的位置..这是3存在于列表中,返回右侧位置3  
  10.   
  11. print x_insert_point  
  12.   
  13. x_insort_left = bisect.insort_left(L,x)  #将x插入到列表L中,x存在时插入在左侧  
  14. print L  
  15.   
  16. x_insort_rigth = bisect.insort_right(L,x) #将x插入到列表L中,x存在时插入在右侧      
  17.   
  18. print L  

结果:

1
3
[1, 3, 3, 3, 6, 8, 12, 15]
[1, 3, 3, 3, 3, 6, 8, 12, 15]

实际使用中


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 欠我钱的人耍赖不还我该怎么办 交易猫买的炉石传说号被找回怎么办 淘宝上卖水果过季了不想下架怎么办 两岁宝宝被蚊子咬了挠破流水怎么办 我打了人一拳他就躺地下了怎么办 在微信上被认识的人骗了钱该怎么办 微信上面被不认识的人骗了钱怎么办 柜体和订做的柜门颜色对不上怎么办 拉鞭炮的车压了我的电车不陪怎么办 脚爱出汗穿高跟凉鞋总往前滑怎么办 视频的格式是VⅠD打开很慢怎么办 汕头普法学法我点了考试没考怎么办 德云的生活攻略第三天卡关了怎么办 我的世界房子被参观的人烧了怎么办 新买的手表返厂维修弄划伤了怎么办 糖猫手表丢了别人捡了换了卡怎么办 我妈总怀疑我爸偷她东西怎么办啊 在百度上买的演出票不配送了怎么办 北交大预报名信息填错了怎么办保研 我租了个店面房子但是写了拆怎么办 电话换了微信账号密码都忘了怎么办 宝宝被开水烫了的泡泡破皮了怎么办 脚上泡泡破了的留下的黑印子怎么办 我的车子被前夫霸占了不给我怎么办 自己和同学吵了一架生气了要怎么办 旅游 徐州 泰山 尼泊尔旅游 d\' \'0 0\' 1\' 1\'\' 3\' 11\' 7\'\' w\'w w\'w\'w w\'