【问题描述】 从文件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-02-20 11:02:28 浏览: 51
这是一个文件读取和字符串处理的问题,可以使用Python来解决。以下是示例代码:
```python
# 打开输入文件
with open('in.txt', 'r') as f:
# 读取文件内容并用空格分割成单词列表
words = f.read().split()
# 统计每个单词出现的次数并存入字典
word_count = {}
for word in words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
# 将字典按值从大到小排序,如果值相同则按键从小到大排序
sorted_word_count = sorted(word_count.items(), key=lambda x: (-x[1], x[0]))
# 打开输出文件
with open('out.txt', 'w') as f:
# 将排序后的结果写入输出文件
for word, count in sorted_word_count:
f.write(f"{word} {count}\n")
```
以上代码首先打开输入文件,读取文件内容并用空格分割成单词列表。接着使用字典统计每个单词出现的次数,并将结果存入字典中。然后使用`sorted`函数对字典按值从大到小排序,如果值相同则按键从小到大排序。最后打开输出文件,将排序后的结果写入输出文件中。
相关问题
从文件in.txt读取信息,文件里的单词中间由空格隔开 统计每个单词出现的次数,从大到小排序后输出到文件out.txt
好的,我可以帮助你解决这个问题。
你可以使用Python来完成这个任务。下面是一个示例代码,可以实现你的要求:
```python
from collections import defaultdict
# 读取文件并统计单词出现次数
word_counts = defaultdict(int)
with open('in.txt', 'r') as f:
for line in f:
words = line.split()
for word in words:
word_counts[word] += 1
# 按照单词出现次数从大到小排序
sorted_word_counts = sorted(word_counts.items(), key=lambda x: x[1], reverse=True)
# 将结果输出到文件out.txt
with open('out.txt', 'w') as f:
for word, count in sorted_word_counts:
f.write(word + ' ' + str(count) + '\n')
```
这个代码会读取文件`in.txt`中的每一行,将每一行分割成单词,然后使用`defaultdict`来统计每个单词出现的次数。最后,使用`sorted`函数按照单词出现次数从大到小排序,并将结果写入到文件`out.txt`中。
希望这个代码可以帮助到你。
从文件in.txt读取信息,文件里的单词中间由空格隔开,统计每个单词出现的次数,从大到小排序后输出到文件out.txt
好的,我可以帮你写一个Python程序来完成这个任务。请确保当前目录下有in.txt文件,并且out.txt文件不存在。以下是程序代码:
```python
# 读取文件内容
with open("in.txt", "r") as f:
content = f.read()
# 统计单词出现次数
word_count = {}
for word in content.split():
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
# 按照出现次数排序
sorted_word_count = sorted(word_count.items(), key=lambda x: x[1], reverse=True)
# 将结果输出到文件
with open("out.txt", "w") as f:
for word, count in sorted_word_count:
f.write(f"{word} {count}\n")
```
程序首先读取in.txt文件的内容,然后统计每个单词出现的次数,存储在一个字典中。接着,使用Python内置的sorted函数按照出现次数对字典进行排序,并将结果输出到out.txt文件中。
注意,如果in.txt文件中有多个空格或者换行符,程序可能会将它们当作一个单词的一部分。如果需要更精确的处理,可以使用正则表达式或者第三方库如NLTK来进行分词。
阅读全文