作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在寻找一些 Python 代码,它可以从未排序的 n
数字列表中返回 k
最大的数字。首先我想通过首先对列表进行排序来做到这一点,但这可能会变得非常庞大。
例如,我想从中找到 k
最大数字的列表是 list1
> list1 = [0.5, 0.7, 0.3, 0.3, 0.3, 0.4, 0.5]
这里 n = 7
如果 k = 3
,也就是说,如果我想从 7 个数字的列表中找到 3 个最大的数字,那么输出应该是 0.5、0.7、0.5
如何做到这一点?
最佳答案
Python 包含所有电池 - 使用 heapq
模块:)
from heapq import nlargest
data = [0.5, 0.7, 0.3, 0.3, 0.3, 0.4, 0.5]
print nlargest(3, data)
它也比对整个数组排序更快,因为它使用的是部分堆排序
关于python - 假设 n > k 如何从 n 个数字的列表中找到 k 个最大的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17906949/
我是一名优秀的程序员,十分优秀!