You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

词频分析器开发:如何对词频字典按频率降序+字典序排序?

解决词频排序的问题:先按频率降序,同频率按字典序排序

嘿,这个需求其实很好实现!既然你已经拿到了键为单词、值为频率的字典,咱们直接利用排序函数的多维度排序key就能搞定。

核心思路

排序的优先级是:

  1. 第一优先级:按单词频率降序排列
  2. 第二优先级:当频率相同时,按单词的字典序升序排列

在Python里,sorted()函数支持传入一个key参数,我们可以用元组来定义排序的优先级——元组的元素会按顺序依次比较:先比第一个元素,第一个相等再比第二个,以此类推。

具体实现代码

假设你的词频字典是这样的:

word_counts = {'hello': 20, 'hi': 20, 'world': 15, 'python': 10, 'apple': 15}

我们只需要这样写排序逻辑:

# 对字典的键值对进行排序
sorted_word_list = sorted(word_counts.items(), key=lambda item: (-item[1], item[0]))

# 逐行输出结果
for word, count in sorted_word_list:
    print(f"{word}: {count}")

代码解释

  • lambda item: (-item[1], item[0]):这个匿名函数就是排序的核心规则
    • -item[1]:把频率取负数,这样sorted()默认的升序排序,就会把原频率高的单词排在前面(相当于频率降序)
    • item[0]:当两个单词的频率取负后相等(也就是原频率相同),就会比较单词本身,按字典序升序排列

输出结果

运行上面的代码,你会得到这样的输出:

hello: 20
hi: 20
apple: 15
world: 15
python: 10

完全符合你的需求:频率高的在前,同频率的单词按字典序排列。

内容的提问来源于stack exchange,提问作者Zahar Bozhok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:17:51