【问题描述】 从文件in.txt读取信息,文件里的单词中间由空格隔开 统计每个单词出现的次数,从大到小排序后输出到文件out.txt 【输入形式】 文件里存储了多个单词,有重复,空格隔开 【输出形式】 从大到小输出单词及其出现的次数,次数一样的单词按字符串比较从小到大排序 【输入样例】in.txt文件里面的数据如下所示: hello world python hello word file number file file 【输出样例】out.txt文件里面的数据如下所示: file 3 hello 2 number 1 python 1 word 1 world 1
时间: 2024-03-23 19:41:22 浏览: 77
以下是Python代码实现:
```python
# 读入文件内容
with open('in.txt', 'r') as f:
content = f.read()
# 将字符串转化为单词列表
words = content.split()
# 统计单词出现次数
word_count = {}
for word in words:
if word not in word_count:
word_count[word] = 1
else:
word_count[word] += 1
# 将单词按出现次数从大到小排序
sorted_words = sorted(word_count.items(), key=lambda x: (-x[1], x[0]))
# 将结果输出到文件
with open('out.txt', 'w') as f:
for word, count in sorted_words:
f.write(word + ' ' + str(count) + '\n')
```
代码解释:
1. 先读入文件内容,存储在字符串变量 `content` 中。
2. 使用 `split` 方法将字符串按空格分割成单词列表 `words`。
3. 遍历单词列表,使用字典 `word_count` 统计每个单词出现的次数。
4. 使用 `sorted` 函数对字典 `word_count` 进行排序,排序规则是先按出现次数从大到小排序,如果出现次数相同则按单词字符串从小到大排序。
5. 将结果输出到文件 `out.txt` 中,每行一个单词及其出现次数。
阅读全文