关键功能heapq.n最大()

2024-09-28 16:52:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一本字典,上面有{key: count},比如说 status_count = {'MANAGEMENT ANALYSTS': 13859, 'COMPUTER PROGRAMMERS': 72112} 我正试图为heapq.n最大()根据计数排序,如果有平局,我必须根据键的字母顺序(a-z)排序。我必须使用heapq.n最大因为非常大的N和很小的k=10。在

这就是我到现在为止得到的

top_k_results = heapq.nlargest(args.top_k, status_count.items(), key=lambda item: (item[1], item[0])) 但是,如果打破了按字母顺序排列的联系,这是不正确的。请帮忙!在


Tags: key字典排序topstatuscount字母item
1条回答
网友
1楼 · 发布于 2024-09-28 16:52:46

最简单的方法是切换到heapq.nsmallest并重新定义排序键:

from heapq import nsmallest

def sort_key(x):
    return -x[1], x[0]

top_k_results = nsmallest(args.top_k, status_count.items(), key=sort_key)

或者,可以使用^{}并取负数表示升序:

^{pr2}$

如果需要规范化字符串的大小写,请记住使用^{}。在

相关问题 更多 >