在实际工作中我们经常会遇到将一个list中最大[最小]的前TopK个元素输出的问题。
比如说在电商领域,求上个月卖的最好的前10个商品,或者是每个品类下卖的最好的前10个商品。
最常用的方式就是对列表排序,然后从前到后数K个元素。
例如Python中可以这样:
a = [2,1,3,4,2,4,65,7,22,3,6]
a.sort()
top10 = a[0:10]
其中的排序过程使得最后取出的前TopK个元素不仅能满足要求,而且还是排好序的。这似乎是一个非常不错的addtional benifit,不过你除非你确信或可接受由此带来的性能开销,最好不要轻易的接受这种不速的benif......
阅读全文