python里几个神奇的库(未完待续)

1.bisect:使用二分法,在一个已排序的序列查找合适的插入位置。

>>>import bisect
>>>l = [10,19,88,90]
>>>bisect.bisect(l, 22)
>>>2   #适合插入的位置为2

bisect.bisect_left(l, 22)  #如果已经在列表中存在,返回左边的位置
bisect.insort_left(l,22)  #插入

2.heapq:完全平衡二叉树,所有节点都小于其子节点。

from heapq import *
from random import *
l = sample(xrange(1000),10)
heap = []
print l
for i in l:heappush(heap, i)

print heappop(heap)   #弹出的是列表里最小的。
nlargest(5, l)  从列表中返回有序的最大的N个元素
nsmallest(5, l) 返回最小的N个元素

  

posted @ 2015-02-12 14:02  huangxiaohen  阅读(608)  评论(0编辑  收藏  举报