heapq模块可以从一个序列中找出最大或最小的N个元素。
1.heapq.nlargest()从序列中找出最大的N个元素
import heapq # 导入heapq模块 a = [1,5,3,6,3,8] # 定义一个列表 print(heapq.nlargest(3,a)) # 找出列表a中最大的3个元素,输出为:[8,6,5]
2.heapq.nsmallest()从序列中找出最小的N个元素
1 import heapq 2 a = [1,5,3,6,3,8] 3 print(heapq.nsmallest(3,a)) # 找出列表a中最小的3个元素,输出为:[1, 3, 3] 4 a = [{‘name‘:‘bob‘, ‘age‘:11}, 5 {‘name‘:‘jack‘,‘age‘:12}, 6 {‘name‘:‘tom‘,‘age‘:8}, 7 {‘name‘:‘alice‘,‘age‘: 5}] 8 # 和上面比较这里多了一个关键字参数key,指定了比较依据y依据,即按age的值进行比较,然后找出最大的两个元素 9 print(heapq.nlargest(2,a,key=lambda s:s[‘name‘]))# 输出为[{‘name‘: ‘tom‘, ‘age‘: 8}, {‘name‘: ‘jack‘, ‘age‘: 12}]
原文:https://www.cnblogs.com/yemeiivan-zhang/p/12491224.html