Python如何按指定单词频率对句子词频字典列表进行排序
按指定单词词频排序词频字典列表的实现方法
直接使用Python内置的sorted()函数即可实现需求,全程不会修改原列表和内部的词频字典内容:
核心逻辑
- 用
sorted()而非列表的sort()方法:前者返回新的排序后列表,不会改动原数据;后者是原地排序,会修改原列表顺序。 key参数通过匿名函数取每个词频字典中目标单词的频次,字典的get方法可以设置默认值0,避免目标单词不存在时抛出KeyError。- 需要降序排序时添加
reverse=True参数即可。
代码示例
首先定义示例词频字典列表:
freq_list = [ {'hello': 1, 'world': 1, 'my': 1, 'name': 1, 'is': 1, 'mary': 1, 'however': 1}, {'is': 2, 'the': 1, 'water': 1, 'running': 1, 'it': 1, 'cold': 1}, {'everything': 1, 'is': 3, 'okay': 1} ]
升序排序(频次从低到高)
target_word = 'is' sorted_freq_asc = sorted(freq_list, key=lambda item: item.get(target_word, 0))
输出结果顺序:is出现1次的字典 → is出现2次的字典 → is出现3次的字典。
降序排序(频次从高到低)
sorted_freq_desc = sorted(freq_list, key=lambda item: item.get(target_word, 0), reverse=True)
输出结果顺序:is出现3次的字典 → is出现2次的字典 → is出现1次的字典。
内容的提问来源于stack exchange,提问作者Alyssa Bauman
相关产品推荐
相关产品推荐

