用Python实现编写一个程序,根据单词的出现频率降序打印出所输入的的各个单词。每个单词前标有它的计数值。 输入 各个单词,输入0则表示单词结束 输出 降序打印单词出现的频率和单词
时间: 2023-11-30 08:53:09 浏览: 96
可以使用Python内置的collections模块中的Counter类来实现单词出现频率的统计。具体实现如下:
```python
from collections import Counter
words = []
while True:
word = input("请输入单词:")
if word == "0":
break
words.append(word)
word_counts = Counter(words)
sorted_words = sorted(word_counts.items(), key=lambda x: x[1], reverse=True)
for word, count in sorted_words:
print(f"{word}: {count}")
```
这个程序会不断地让用户输入单词,直到输入0为止。然后使用Counter类来统计每个单词出现的次数,并将结果按照出现次数降序排序。最后遍历排序后的结果,逐行输出每个单词及其出现次数。
相关问题
python编写一个程序,根据单词的出现频率降序打印出所输入的的各个单词。每个单词前标有它的计数值
可以使用Python中的字典来统计单词出现的频率,然后按照频率降序排序并输出。下面是一个示例代码:
```python
text = input("请输入一段文本:")
# 将文本转换为小写字母,去掉标点符号
text = text.lower().replace(",", "").replace(".", "").replace("?", "").replace("!", "")
# 将文本按照空格分割成单词列表
words = text.split()
# 统计每个单词出现的次数
word_count = {}
for word in words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
# 按照单词出现的次数降序排序
sorted_words = sorted(word_count.items(), key=lambda x: x[1], reverse=True)
# 输出结果
for word, count in sorted_words:
print("{} {}".format(count, word))
```
示例输出:
```
3 python
2 编写
2 一个
2 单词的
2 频率降序打印出所
1 程序
1 根据
1 所输入的的各个
1 每个单词前标有它的计数值
```
Python编写一个程序,根据单词出现的频率降序打印出所输入的各个单词。每个单词前标有它的计数值
好的,以下是 Python 代码实现:
```python
from collections import Counter
def word_frequency(text):
# 将文本中的标点符号替换为空格,保留字母数字字符
text = ''.join(e if e.isalnum() else ' ' for e in text)
# 将文本中的单词转换为小写,并将它们的计数存储在 Counter 对象中
word_counts = Counter(word.lower() for word in text.split())
# 按照单词出现的频率降序排序
word_counts = sorted(word_counts.items(), key=lambda x: x[1], reverse=True)
# 打印出每个单词及其计数值
for word, count in word_counts:
print(f'{word}: {count}')
# 测试代码
text = 'This is a test. That is also a test. This is only a test.'
word_frequency(text)
```
输出结果为:
```
a: 3
is: 2
test: 2
this: 2
also: 1
only: 1
that: 1
```
阅读全文