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 topN 取最大的N个数或最小的N个数方法
-
python 输入一个数n,求n个数求乘或求和的实例
-
python生成n个元素的全组合方法
-
【Python实践-5】使用迭代查找一个list中最小和最大值
-
编程实现对一个元素全为数字的列表,求最大值、最小值(回炉笔记)
-
MS SQL两个日期比较,获取最大或最小的日期
-
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
-
python如何获得list或numpy数组中最大元素对应的索引
-
python数组中的第K个最大元素(快排与堆排)
-
程序员代码面试指南 python实现(第一章 栈和队列 :最大值减去最小值小于或等于num的子数组数量)