Есть ли какая-то функция, которая вернет мне N наивысших элементов из какого-то списка?Python: взять max N элементов из некоторого списка
I.e. если max(l)
возвращает единственный самый высокий элемент, sth. как max(l, count=10)
вернет мне список из 10 самых высоких чисел (или меньше, если l
меньше).
Или что было бы эффективным простым способом получить их? (За исключением очевидной канонической реализации, а также нет таких вещей, которые связаны с сортировкой всего списка во-первых, потому что это было бы неэффективно по сравнению с каноническим решением.)
Возможный дубликат http://stackoverflow.com/q/1034846/64633 – Rod
heapq.nlargest путь для перехода на действительно большие списки, но в моей системе сортировка (l) [: count] выполняется быстрее, пока список не достигнет ~ 25000 элементов. –
sorted (l, reverse = True) [0: N] –