作业2:请读取names.txt文件,请统计所有姓氏出现的频率(复姓不考虑),并将其按频率从大到小输出到文件中,文件格式为:【姓氏】【空格】【频率】
时间: 2023-08-24 13:52:43 浏览: 103
好的,下面是实现这个功能的代码样例:
```python
def count_surnames(file_name):
surname_count = {}
with open(file_name, 'r') as file:
for line in file:
name = line.strip()
surname = name[0]
if len(surname) == 1:
if surname in surname_count:
surname_count[surname] += 1
else:
surname_count[surname] = 1
sorted_surnames = sorted(surname_count.items(), key=lambda x: x[1], reverse=True)
return sorted_surnames
file_name = "names.txt"
sorted_surnames = count_surnames(file_name)
output_file = "surname_frequencies.txt"
with open(output_file, 'w') as file:
for surname, count in sorted_surnames:
file.write(f"{surname} {count}\n")
print(f"姓氏频率已输出到文件 {output_file} 中。")
```
你可以将以上代码保存为一个 Python 文件,然后在命令行中运行该文件,即可得到姓氏频率的输出文件。记得将 "names.txt" 替换为实际的文件名,并且可以根据需要修改输出文件的名称和路径。希望这对你有帮助!如果你还有其他问题,请随时提问。
阅读全文