如何获得最多N个元素

时间:2015-03-14 21:53:06

标签: python

我知道如何获得单一最大值:

m = max([1,2])
2

我如何获得最大n元素?例如:

m = max([1,2,3,4,5], n=2)
[4,5]

3 个答案:

答案 0 :(得分:6)

import heapq
input_list = [1,2,3,4,5]
number_of_elements = 3
heapq.nlargest(number_of_elements, input_list)

有关详细信息,请参阅heap queue algorithm docs

答案 1 :(得分:2)

这是实现它的一种方法 - 对列表进行排序,然后对第一个n元素进行切片。

def maxN(elements, n):
    return sorted(elements, reverse=True)[:n]

答案 2 :(得分:1)

如果你想要超越排序算法的性能,你需要使用选择算法(如QuickSelect)

请参阅:quickSelect HW in Python

这将平均复杂度从O(n log n)(快速排序)降低到O(n)(快速选择)。