选择《三国演义》,统计人物出场次数,输出出场次数最多的前10位人物及出场次数。
时间: 2024-02-27 08:51:29 浏览: 162
好的,我可以帮你实现这个功能。以下是代码实现:
```python
import re
# 读取文本文件
with open('三国演义.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 统计人物出现次数
pattern = r'[\u4e00-\u9fa5]{2,4}(?:·[\u4e00-\u9fa5]{2,4})*'
names = re.findall(pattern, text)
name_counts = {}
for name in names:
if name in name_counts:
name_counts[name] += 1
else:
name_counts[name] = 1
# 输出出现次数最多的前10位人物及出现次数
top_10_names = sorted(name_counts.items(), key=lambda x: x[1], reverse=True)[:10]
print("出场次数最多的前10位人物及出场次数:")
for name, count in top_10_names:
print(name, count)
```
代码首先读取本地的《三国演义》文本文件,然后使用正则表达式匹配人物名字,统计每个人物在文本中出现的次数,并将结果保存在`name_counts`字典中。最后,使用`sorted()`函数将`name_counts`字典按照出现次数从大到小排序,输出出场次数最多的前10位人物及其出现次数。
需要注意的是,以上代码只能统计文本中出现的人物名字,对于没有出现在文本中的人物不会被统计。另外,如果同一个人物名字有多种不同的写法,统计结果可能存在一定的误差。
阅读全文