Skip to main content
 首页 » 编程设计

python之计算单词按字母顺序出现

2025年05月04日20findumars

在文本处理任务中,首先要做的事情之一是计算每个单词在给定文档中出现的频率。在此任务中,您将完成一个函数,该函数返回标记化单词文档的唯一词频。

编写代码来完成 count_frequencies 函数。输入参数 (arr) 是一个字符串列表,表示一个标记化的 word 文档。示例输入如下所示:

['the', 'dog', 'got', 'the', 'bone']

您的 count_frequencies 函数应返回元组列表,其中元组中的第一个元素是来自 arr 的唯一单词,元组中的第二个元素是它在 arr 中出现的频率。返回的列表应按每个元组的第一个元素的字母顺序排序。对于上面的示例,正​​确的输出将是以下元组列表:

**[('bone', 1), ('dog', 1), ('got', 1), ('the', 2)]** 

下面显示了更多示例(以及解决方案):

**Input: ['we', 'came', 'we', 'saw', 'we', 'conquered']** 
**Solution: [('came', 1), ('conquered', 1), ('saw', 1), ('we', 3)]** 
**Input: ['a', 'square', 'is', 'a', 'rectangle']** 
**Solution: [('a', 2), ('is', 1), ('rectangle', 1), ('square', 1)]** 

您可以在输入文本框中编写自己的测试用例。 在这种情况下,您的测试用例应该是空格分隔的单词,代表 count_frequencies 函数的输入列表。

请您参考如下方法:

您可以使用 collections.Counter 来使用这个简单的函数:

from collections import Counter 
 
def count_words(list_of_words): 
    return sorted(Counter(list_of_words).items()) 
 
>>> count_words(['we', 'came', 'we', 'saw', 'we', 'conquered']) 
 
# [('came', 1), ('conquered', 1), ('saw', 1), ('we', 3)]