统计 《三国演义》中每个人物的出场次数,输出前10名
时间: 2024-03-02 20:48:44 浏览: 31
好的,你可以使用以下Python代码实现:
```python
import re
# 读取文本内容
with open('sgyy.txt', 'r', encoding='utf-8') as f:
content = f.read()
# 使用正则表达式找出所有人名
pattern = re.compile('[\u4e00-\u9fa5]{2,4}(?:·[\u4e00-\u9fa5]{2,4})*')
names = pattern.findall(content)
# 统计每个人名出现的次数
name_count = {}
for name in names:
if name in name_count:
name_count[name] += 1
else:
name_count[name] = 1
# 按出场次数从大到小排序
top10 = sorted(name_count.items(), key=lambda x: x[1], reverse=True)[:10]
# 输出前10名
for i, (name, count) in enumerate(top10):
print(f'{i+1}. {name} 出场次数:{count}')
```
其中,`sgyy.txt`是《三国演义》的文本文件,需要与代码文件在同一目录下。代码会使用正则表达式找出所有人名,并统计每个人名出现的次数。最后,按出场次数从大到小排序,输出前10名。
相关问题
统计《三国演义》中每个人物的出场次数,输出前10名。
好的,可以使用Python的文本处理和数据结构操作来完成这个任务。可以按照以下步骤操作:
1. 打开《三国演义》的文本文件,读取其中的内容。
2. 使用正则表达式或字符串操作,提取每个人物出现的次数,并存储到一个字典中。
3. 对字典按照出现次数进行排序,取出前10名。
4. 输出结果。
下面是代码实现:
```python
import re
# 打开《三国演义》的文本文件,读取其中的内容
with open('sanguo.txt', 'r', encoding='utf-8') as f:
content = f.read()
# 使用正则表达式或字符串操作,提取每个人物出现的次数,并存储到一个字典中
pattern = r'[\u4e00-\u9fa5]{2,5}(?:·[\u4e00-\u9fa5]{2,5})*'
results = re.findall(pattern, content)
counts = {}
for result in results:
if result in counts:
counts[result] += 1
else:
counts[result] = 1
# 对字典按照出现次数进行排序,取出前10名
top10 = sorted(counts.items(), key=lambda x: x[1], reverse=True)[:10]
# 输出结果
print('三国演义中出现次数前10的人物为:')
for i, (name, count) in enumerate(top10):
print('第{}名:{},出现次数:{}'.format(i+1, name, count))
```
这样,就完成了对《三国演义》中每个人物的出场次数统计,并输出了前10名出场次数最多的人物。
统计《三国演义》中人物的出场次数Python
可以使用Python的字典来统计《三国演义》中人物的出场次数。首先,需要读取《三国演义》的文本文件,然后逐行遍历文件中的每个人物名字,将其加入字典中,并统计出现次数。以下是示例代码:
```
# 打开《三国演义》文本文件
with open('sanguo.txt', 'r', encoding='utf-8') as f:
# 初始化人物出场次数字典
character_count = {}
# 逐行遍历文本文件
for line in f:
# 去除行末的换行符
line = line.strip()
# 如果行为空,则跳过
if not line:
continue
# 如果行以“第”开头,则跳过
if line.startswith('第'):
continue
# 如果行中不包含“曰”字,则跳过
if '曰' not in line:
continue
# 提取人物名字
character = line.split('曰')[0]
# 如果人物名字已经在字典中,则出场次数加1
if character in character_count:
character_count[character] += 1
# 否则,将人物名字加入字典,并出场次数初始化为1
else:
character_count[character] = 1
# 输出人物出场次数
for character, count in character_count.items():
print(character, count)
```
注意:这里假设《三国演义》的文本文件名为“sanguo.txt”,需要根据实际情况修改文件名。