gpt4 book ai didi

python - heapq.nlargest() 的关键函数

转载 作者:行者123 更新时间:2023-11-28 18:06:48 24 4
gpt4 key购买 nike

我有一本包含 {key: count} 的字典,比如说status_count = {'管理分析':13859,'计算机程序员':72112}我正在尝试为 heapq.nlargest() 编写一个键函数,该函数根据计数进行排序,如果有联系,我必须根据键的字母顺序 (a-z) 进行排序。由于非常大的 N 和小的 k = 10,我必须使用 heapq.nlargest。

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

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

最佳答案

最简单的可能是切换到 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)

或者,您可以使用 ord并对升序取负值:

from heapq import nlargest

def sort_key(x):
return x[1], [-ord(i) for i in x[0]]

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

记得使用str.casefold如果您需要规范化字符串的大小写。

关于python - heapq.nlargest() 的关键函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53062137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com