python bisect模塊

###bisect ####二分法查找
>>>import bisect >>>a=[1, 3, 2, 6, 5] >>>a.sort() [1, 2, 3, 5, 6] >>>bisect.insort(a, 7) [1, 2, 3, 5, 6, 7]html

這個模塊主要是用於查找和插入,當一個數組有序時, 出入一個數以後數組仍然是有序的,這裏面的> 制就是按照二分法查找,找到要插入的index,而後a.insert(index, x) 源碼在http://hg.python.org/cpython/file/2.7/Lib/bisect.pypython

####用法####數組

>>> data = [('red', 5), ('blue', 1), ('yellow', 8), ('black', 0)]
>>> data.sort(key=lambda r: r[1])
>>> keys = [r[1] for r in data]         # precomputed list of keys
>>> data[bisect_left(keys, 0)]
('black', 0)    
>>> data[bisect_left(keys, 1)]
('blue', 1)
>>> data[bisect_left(keys, 5)]
('red', 5)
>>> data[bisect_left(keys, 8)]
('yellow', 8)

官方文檔: http://docs.python.org/2/library/bisect.htmlcode

相關文章
相關標籤/搜索