###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)