我正在为 Python 类做一个非常简单的家庭作业问题,涉及字符、单词及其相对频率等的各种统计数据。目前我正在尝试分析一串文本并获取每个列表文本中唯一的词,后跟它被使用的次数。我对 Python(或与此相关的任何语言)的了解非常有限,因为这是一门入门类(class),因此我只提出了以下代码:
for k in (""",.’?/!":;«»"""):
text=text.replace(k,"")
text=text.split()
list1=[(text.count(text[n]),text[n]) for n in range(0,len(text))]
for item in sorted(list1, reverse=True):
print("%s : %s" % (item[1], item[0]))
不幸的是,这会打印出文本中的每个单词(按出现顺序),然后是它的出现频率 n,n 次。显然这是非常无用的,我想知道我是否可以在我已经编写的代码中添加一点漂亮的代码,使每个单词只出现在这个列表中一次,然后最终按降序出现。我看到的所有其他类似问题都使用了很多我们没有学过的代码,所以我认为答案应该相对简单。
最佳答案
看看collections.Counter
.您可以使用它来计算您的词频,它会帮助您使用 most_common
方法按排序顺序打印列表。
(没有示例代码,因为这是一个 homework question ,您必须自己做一些工作)。
关于Python:独特的单词及其频率降序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10978546/