heapq

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}]

posted on 2020-03-14 11:38  VinceZhang  阅读(355)  评论(0)    收藏  举报

导航