在文件in.txt 存放有一组单词,单词之间用空格隔开,读取文件内容, 去除单词之间的空格,以及行尾的换行字符,统计每个字母出现的频率, 安字母顺序 并将所有单词转换为小写后 每行一个字母和它对应的次数, 输出到文件out.txt中 字母和次数之间用跳格字符\t隔开 例如,文件in.txt的内容为: the Zen of Python 则结果文件out.txt中的内容为:
时间: 2024-02-03 21:12:51 浏览: 79
a 1
e 1
f 1
h 1
n 2
o 2
p 1
t 2
v 1
y 1
以下是Python代码实现:
```python
from collections import defaultdict
# 读取文件内容
with open('in.txt', 'r') as f:
words = f.read().strip().lower().split()
# 统计每个字母出现的频率
freq = defaultdict(int)
for word in words:
for char in word:
if char.isalpha():
freq[char] += 1
# 将统计结果按字母顺序排序并输出到文件
with open('out.txt', 'w') as f:
for char in sorted(freq.keys()):
f.write(char + '\t' + str(freq[char]) + '\n')
```
其中,首先使用`read()`方法读取文件内容,然后使用`strip()`方法去除行尾的换行字符,使用`lower()`方法将所有单词转换为小写,并使用`split()`方法分割单词并去除单词之间的空格。接着,使用`defaultdict`创建一个默认值为0的字典`freq`,遍历每个单词并统计每个字母出现的频率,最后按字母顺序排序并将结果输出到文件中。
阅读全文