学习bisect模块保持列表排序
2013-01-22 10:39
288 查看
学习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 2013-01-22 10:39 200人阅读 评论(0) 收藏
- bisect模块 分类: python基础学习 python 2013-06-28 17:58 288人阅读 评论(0) 收藏
- 一个有趣的python排序模块:bisect
- NEC学习 ---- 模块 -水平文字链接列表
- 学习Discuz! X3.2记录:门户文章模块中为什么看不到文章列表?
- python学习四:import模块方法、可变参数、字典key判断、版本信息获取、列表解析、
- python的排序模块bisect
- salesforce 零基础学习(六十三)Comparable实现Object列表数据的自定义排序
- 将dll从进程模块列表中移除并保持正常运行
- 将dll从进程模块列表中移除并保持正常运行
- Python学习之列表排序
- Python学习_我怎么能够对列表中的元素排序
- 学习笔记☞ python 基础(python3)【四】(函数 function,None,return,列表-2,random模块)
- 将dll从进程模块列表中移除并保持正常运行
- Java学习总结--列表排序
- 如何在App中实现IM功能之七快速实现聊天列表排序模块——箭扣科技Arrownock
- 将dll从进程模块列表中移除并保持正常运行
- python数据结构学习笔记-2016-10-24-02-使用排序列表实现集合ADT
- NEC学习 ---- 模块 - 带点文字链接列表
- python列表排序 分类: python基础学习 python 2013-07-17 11:19 884人阅读 评论(0) 收藏