2.4.4 堆的数据极值
heapq还包括两个检查可迭代对象(iterable)的函数,可以查找其中包含的最大或最小值的范围。
import heapq
from heapq_heapdata import data
print('all :',data)
print('3 largest :',heapq.nlargest(3,data))
print('from sort :',list(reversed(sorted(data)[-3:])))
print('3 smallest:',heapq.nsmallest(3,data))
print('from sort :',sorted(data)[:3])
只有当n值(n>1)相对小时使用nlargest()和nsmallest()才算高效,不过有些情况下这两个函数会很方便。
运行结果: