gpt4 book ai didi

python - 假设 n > k 如何从 n 个数字的列表中找到 k 个最大的数字

转载 作者:太空狗 更新时间:2023-10-29 21:13:48 24 4
gpt4 key购买 nike

我正在寻找一些 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com