Python:独特的单词及其频率降序排列

Jes*_*ker 2 python unique frequency cpu-word

我正在为Python类做一个非常简单的作业问题,涉及到关于字符,单词及其相对频率等的各种统计数据.目前我正在尝试分析一串文本并获取每个唯一单词的列表.文本后跟它的使用次数.我对Python(或任何语言)的知识非常有限,因为这是一门入门课程,因此只提出以下代码:

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]))
Run Code Online (Sandbox Code Playgroud)

不幸的是,这打印出文本的每个单词(按照出现的顺序),然​​后是频率n,n次.显然这是非常无用的,我想知道我是否可以在我已编写的内容中添加一些漂亮的小代码,使每个单词只出现在此列表中一次,然后最终按降序排列.我见过的所有其他问题都使用了很多我们还没有学过的代码,所以我认为答案应该相对简单.

Mar*_*ers 6

看看collections.Counter.您可以使用它来计算您的单词频率,它将帮助您按照排序顺序打印出列表,使用该most_common方法.

(没有示例代码,因为这是一个家庭作业问题,你必须自己做一些工作).

  • 哦,我已经在编写示例代码了.但是使用[[tag:homework]]标签,这可能是最好的答案. (2认同)