用Python语言编写一个能计算文档中各位作者作品数量的程序,遍历文档中每一行,提取作者的姓名,将其作为键加入到字典中,字典的值为作品数量。然后将字典转换为二维列表,按作品数量的降序排列
时间: 2024-10-26 21:02:35 浏览: 50
在Python中,你可以使用内置的`open()`函数读取文件,通过`split()`方法分割每一行以提取作者姓名,利用`collections.Counter`统计每个作者的作品数量,并最终按照作品数量排序。这里是一个简单的示例:
```python
import collections
def count_authors(file_path):
author_counts = {} # 创建空字典存储作者及其作品数量
with open(file_path, 'r') as file: # 打开文件进行读取
for line in file:
# 假设每行格式为 "作者姓名: 作品名"
author, _ = line.strip().split(': ')
if author not in author_counts:
author_counts[author] = 0
author_counts[author] += 1
sorted_authors = sorted(author_counts.items(), key=lambda x: x[1], reverse=True) # 按作品数量降序排序
# 将字典转为二维列表,键为作者,值为作品数量
authors_list = [[author, count] for author, count in sorted_authors]
return authors_list
# 使用示例
authors_data = count_authors('your_file.txt')
for author, count in authors_data:
print(f"{author}: {count}作品")
阅读全文