python 找到最大或最小的N个元素

来源:互联网 发布:网络时代知乎 编辑:程序博客网 时间:2024/05/29 15:43

heapq模块的nlargest()函数和nsmallest()函数。

import heapqnums = [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 heapqpersons = [  {'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'}]
0 0