欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  程序教程

Python查找最大或最小的N个元素

程序员文章站 2022-01-13 17:56:32
...

本文为Python CookBook一书的阅读笔记。

怎么样从一个集合中获得最大或者最小的N元素列表呢?马上能够想到的方法是对集合进行排序操作,排序的算法则有冒泡、选择、插入等。有没有更简单的方法呢?Python标准模块heapq中提供了nlargest()和nsmallest()两个函数解决该问题。

nlargest()和nsmallest()用法

nlargest()和nsmallest()两个函数都接受一个关键字参数,用于更复杂的数据结构中。示例代码如下:

import heapq
from random import randint

nums = [randint(1, 100) for _ in range(5)]
# 随机数列表,结果为:[89, 94, 26, 48, 3]
print(nums)
# 结果为:[94, 89, 48]
print(heapq.nlargest(3, nums))
# 结果为:[3, 26, 48]
print(heapq.nsmallest(3, nums))

当要查找的元素个数相对比较小时,函数nlargest()和nsmallest()是比较合适的。如果仅仅是想查找唯一的最小值或者最大值,那么使用max()和min()函数会更快一些。


相关标签: python教程