don*_*pj2 6 python sorting algorithm
我正在考虑以前没有遇到的问题,我正在尝试确定最有效的算法.
我正在迭代两个列表,使用每对元素来计算我想要排序的值.我的最终目标是获得前20名的成绩.我可以将结果存储在第三个列表中,按绝对值对列表进行排序,然后简单地将前二十个切片,但这并不理想.
由于这些列表有可能变得非常大,我理想情况下只想存储前20个绝对值,在计算新的最高值时逐出旧值.
在python中实现这个的最有效方法是什么?
ars*_*jii 11
heapq.nlargest(n, iterable[, key])返回一个列表,其中包含iterable定义的数据集中的n个最大元素.key(如果提供)指定一个参数的函数,该函数用于从iterable中的每个元素中提取比较键:相当于:
key=str.lowersorted(iterable, key=key, reverse=True)[:n]