python代码实现《西游记》人物出场统计,文本文档《西游记》.txt中有4个主要角色:唐僧、孙悟空、猪八戒、沙僧,请依次统计角色的出场次数,再按出场次数由高到低对角色排序。输出格式为:人物名称 xxx次
时间: 2024-11-30 16:14:26 浏览: 240
首先,我们需要读取文本文件并提取包含角色名字的部分。然后,我们可以使用Python的`collections.Counter`类来计算每个角色的出场次数,并使用`sorted`函数按照计数降序排列结果。以下是一个简单的示例代码:
```python
import re
from collections import Counter
# 读取文本文件
with open('西游记.txt', 'r', encoding='utf-8') as file:
content = file.read()
# 定义角色及其正则表达式
roles = {
'唐僧': r'\b唐僧\b',
'孙悟空': r'\b孙悟空\b',
'猪八戒': r'\b猪八戒\b',
'沙僧': r'\b沙僧\b'
}
# 使用正则表达式匹配角色并计数
role_counts = Counter(re.findall('|'.join(roles.values()), content))
# 按照出场次数排序
sorted_roles = sorted(role_counts.items(), key=lambda x: x[1], reverse=True)
# 输出结果
for role, count in sorted_roles:
print(f"{role} {count}次")
```
这个代码假设文本文件的编码是UTF-8,且每个角色的名字都是全角字符,如果需要处理其他情况,可能需要调整正则表达式。注意运行此代码前确保文本文件存在并且路径正确。
阅读全文