我正在寻找Python中的一些代码,它可以k从未排序的n数字列表中返回最大的数字.首先我想通过先排序列表来做到这一点,但这可能会变得非常笨重.
例如,我想要找到k最大数字的列表list1
> list1 = [0.5, 0.7, 0.3, 0.3, 0.3, 0.4, 0.5]
Run Code Online (Sandbox Code Playgroud)
在这里n = 7,如果k = 3,如果我想从7个数字的列表中找到3个最大的数字,那么输出应该是0.5, 0.7, 0.5
如何才能做到这一点?
Rom*_*kar 24
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)
Run Code Online (Sandbox Code Playgroud)
它也比排序整个数组更快,因为它使用了部分堆