是否有某些功能可以从一些列表中返回N个最高元素?
即如果max(l)返回单个最高元素,那么.就像max(l, count=10)会给我一个10个最高数字的列表(如果l更小则更少).
或者什么是一个有效的简单方法来获得这些?(除了明显的规范实现;也没有涉及首先对整个列表进行排序的事情,因为与规范解决方案相比,这将是低效的.)
Gar*_*ees 54
>>> import heapq, random
>>> heapq.nlargest(3, (random.gauss(0, 1) for _ in xrange(100)))
[1.9730767232998481, 1.9326532289091407, 1.7762926716966254]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33620 次 |
| 最近记录: |