heapq模块的nlargest()函数和nsmallest()函数。
import heapq
nums = [1, 2, 3, -4, 13, 37, -2, 44]
maxnums = heapq.nlargest(3, nums) #[44, 37, 13]
minnums = heapq.nsmallest(3, nums) #[-4, -2, 1]
print maxnums, minnums
这两个函数接受一个参数key,从而允许他们工作在更复杂的数据结构之上。
import heapq
persons = [
{'name': 'person1', 'age': 13},
{'name': 'person2', 'age': 14},
{'name': 'person3', 'age': 15}
]
p = heapq.nlargest(1, persons, key=lambda s: s['age'])
print p
# [{'age': 15, 'name': 'person3'}]