假设我们有[4, 5, 2, 3, 1, 6]如何在不使用.sortsorted()的情况下按降序获得最高的3

我当时以为我们可以使用

x = [4, 5, 2, 3, 1, 6]
mad(x) = 6
y = x.remove(max(x)) #[4, 5, 2, 3, 1]


然后继续获取max(y) = 5。直到我们最终得到[6,5,4],我该如何编写此函数?

最佳答案

您可以像这样使用heapq.nlargest

from heapq import nlargest
print nlargest(3, [4, 5, 2, 3, 1, 6])
# [6, 5, 4]

09-26 14:35