学习bisect模块保持列表排序 分类: python 2013-01-22 10:39 200人阅读 评论(0) 收藏
2013-01-22 10:39
736 查看
学习bisect模块保持列表排序
这是一个免费的二分查找实现和快速插入有序序列的工具。也就是说,你可以使用:
>>> import bisect
>>> bisect.insort(list, element)
你已將一个元素插入列表中, 而你不需要再次调用 sort() 来保持容器的排序, 因为这在长序列中这会非常昂贵.
这个模块只有几个函数,一旦决定使用二分搜索时,立马要想到使用这个模块
1.当x在列表中存在时,返回方法中指定的left、right位置的索引或插入在x的左侧或右侧
2.当x在列表中不存在时,返回应该插入的位置索引或插入x中
[python] view
plaincopyprint?
import bisect
L = [1,3,3,6,8,12,15]
x = 3
x_insert_point = bisect.bisect_left(L,x) #在L中查找x,x存在时返回x左侧的位置,x不存在返回应该插入的位置..这是3存在于列表中,返回左侧位置1
print x_insert_point
x_insert_point = bisect.bisect_right(L,x) #在L中查找x,x存在时返回x右侧的位置,x不存在返回应该插入的位置..这是3存在于列表中,返回右侧位置3
print x_insert_point
x_insort_left = bisect.insort_left(L,x) #将x插入到列表L中,x存在时插入在左侧
print L
x_insort_rigth = bisect.insort_right(L,x) #将x插入到列表L中,x存在时插入在右侧
print L
结果:
1
3
[1, 3, 3, 3, 6, 8, 12, 15]
[1, 3, 3, 3, 3, 6, 8, 12, 15]
实际使用中
这是一个免费的二分查找实现和快速插入有序序列的工具。也就是说,你可以使用:
>>> import bisect
>>> bisect.insort(list, element)
你已將一个元素插入列表中, 而你不需要再次调用 sort() 来保持容器的排序, 因为这在长序列中这会非常昂贵.
这个模块只有几个函数,一旦决定使用二分搜索时,立马要想到使用这个模块
1.当x在列表中存在时,返回方法中指定的left、right位置的索引或插入在x的左侧或右侧
2.当x在列表中不存在时,返回应该插入的位置索引或插入x中
[python] view
plaincopyprint?
import bisect
L = [1,3,3,6,8,12,15]
x = 3
x_insert_point = bisect.bisect_left(L,x) #在L中查找x,x存在时返回x左侧的位置,x不存在返回应该插入的位置..这是3存在于列表中,返回左侧位置1
print x_insert_point
x_insert_point = bisect.bisect_right(L,x) #在L中查找x,x存在时返回x右侧的位置,x不存在返回应该插入的位置..这是3存在于列表中,返回右侧位置3
print x_insert_point
x_insort_left = bisect.insort_left(L,x) #将x插入到列表L中,x存在时插入在左侧
print L
x_insort_rigth = bisect.insort_right(L,x) #将x插入到列表L中,x存在时插入在右侧
print L
结果:
1
3
[1, 3, 3, 3, 6, 8, 12, 15]
[1, 3, 3, 3, 3, 6, 8, 12, 15]
实际使用中
相关文章推荐
- bisect模块 分类: python基础学习 python 2013-06-28 17:58 288人阅读 评论(0) 收藏
- python列表排序 分类: python基础学习 python 2013-07-17 11:19 884人阅读 评论(0) 收藏
- sort(key= )排序 分类: python基础学习 2013-07-02 16:50 232人阅读 评论(0) 收藏
- sorted()排序详解 分类: python基础学习 python Module 2013-09-04 17:18 1372人阅读 评论(0) 收藏
- 使用生成器返回fibs列表 分类: python Module python基础学习 2013-10-28 18:19 283人阅读 评论(0) 收藏
- python简明教程-os模块 分类: python 2012-12-27 11:54 200人阅读 评论(0) 收藏
- python数据持久存储:pickle模块的基本使用 分类: python python基础学习 python 小练习 2013-06-17 14:41 209人阅读 评论(0) 收藏
- python之string模块 分类: python基础学习 python Module 2013-08-27 13:58 241人阅读 评论(0) 收藏
- python string模块 分类: python基础学习 python Module 2013-08-16 17:50 294人阅读 评论(0) 收藏
- from ....import导入其他路径的模块 分类: python基础学习 2013-10-11 15:13 315人阅读 评论(0) 收藏
- python中计时工具timeit模块的基本用法 分类: python python基础学习 2013-08-08 10:05 2072人阅读 评论(0) 收藏
- 命令行执行python模块时提示ImportError: No module named xxx 分类: python学习 2014-07-24 11:48 868人阅读 评论(0) 收藏
- 使用set()求出列表交集 分类: python基础学习 2013-06-16 17:00 241人阅读 评论(0) 收藏
- Python模块学习 --- urllib 分类: python 2013-06-09 16:17 209人阅读 评论(0) 收藏
- 删除列表元素时需注意的问题 分类: python基础学习 python 小练习 2013-10-09 14:02 293人阅读 评论(0) 收藏
- fileinput模块 分类: python基础学习 python 小练习 python Module 2013-08-15 17:18 417人阅读 评论(0) 收藏
- 批量生成字典、列表 分类: python基础学习 python 2013-07-22 14:24 328人阅读 评论(0) 收藏
- python pickle模块 分类: python学习 2014-12-01 16:01 129人阅读 评论(0) 收藏
- eval() 分类: python基础学习 2013-08-16 18:00 324人阅读 评论(0) 收藏
- python中的对象和引用 分类: python基础学习 2013-10-30 16:20 264人阅读 评论(0) 收藏