您的位置:首页 > 编程语言 > Python开发

Python 第三天

2018-04-12 17:33 169 查看
heapq:

import heapq

heapq.heappush(Head1,item):head1 定义的head 。item 增加的值

通过heappush 排序

def heappush(sortlist):

h=[]

for i in sortlist:

heapq.heappush(h,i)

return h

heapq.heappop(Head) :删除第一个值head[0]

H=[8,3,4,6,2,10]

heapq.heappop(H)

print(H)

heapq.heappop(Head)

heapq.heappushpop(head,item):把item加入head 然后删除第一个值,比先push然后pop快

heapq.nlargest(n,head) n代表前多少个最大值,一个数组类型

heapq.msmallest(n,head) n代表前多少个最小值,一个数组类型

heapq.merge(*iterables) 将多个列表合并,并进行堆调整,返回的是合并后的列表的迭代器

eg:

number=[100,8,19,21]

number2=[12,45,6,23]

H=[]

H=list(heapq.merge(number,number2))

print(H):[12,45,6,23,100,8,19,21]

heapq.heapreplace(heap, item) #删除最小元素值,添加新的元素值

heapq.heapify(x) 将列表x进行堆调整,默认的是小顶堆

如果你仅仅想查找唯一的最小或最大(N=1) 的元素的话,那么使用min() 和

max() 函数会更快些。类似的,如果N 的大小和集合大小接近的时候,通常先排序这

个集合然后再使用切片操作会更快点( sorted(items)[:N] 或者是sorted(items)[-

N:] )。需要在正确场合使用函数nlargest() 和nsmallest() 才能发挥它们的优势(如果

N 快接近集合大小了,那么使用排序操作会更好些)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  deapq