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