python统计西游记人物出场次数
时间: 2023-10-30 16:03:14 浏览: 397
统计《西游记》人物出场次数可以使用Python编程实现。首先,我们需要打开《西游记》的文本文件,并将内容读取到一个字符串中。然后,我们可以使用字符串的相关方法或正则表达式来查找人物的出现次数。
下面是一个简单的示例代码:
```python
# 读取《西游记》文本文件
with open('西游记.txt', 'r', encoding='utf-8') as file:
content = file.read()
# 统计人物出现次数
characters = ['孙悟空', '猪八戒', '沙僧', '唐僧'] # 这里可以根据需求添加更多人物
count = {}
for character in characters:
count[character] = content.count(character)
# 打印统计结果
for character, appearance in count.items():
print(f"{character}出现了 {appearance} 次。")
```
通过以上代码,我们可以统计《西游记》中指定人物的出现次数。你可以根据实际情况修改代码中的人物列表`characters`,添加或删除人物。
请注意,这只是一个简单的示例代码,需要根据实际情况进行修改。比如,你可能需要处理一些特殊情况,例如人名的别称、重名等。此外,你还可以根据需求对代码进行优化,提高运行效率。
相关问题
python统计西游记出场人物次数
可以使用Python中的字典来统计西游记中出场人物的次数,具体代码如下:
```python
# 打开西游记文本文件
with open('西游记.txt', 'r', encoding='utf-8') as f:
# 读取文件内容
content = f.read()
# 将文本内容转换为小写,去除标点符号和空格
content = content.lower().replace(' ', '').replace('\n', '').replace('\r', '').replace('\t', '')
for c in ',。!?;:“”‘’()《》【】':
content = content.replace(c, '')
# 将文本内容按照“人物名”进行分割
words = content.split('人物名')
# 统计每个人物出现的次数
count = {}
for word in words:
if word:
if word in count:
count[word] += 1
else:
count[word] = 1
# 按照出现次数从大到小排序
result = sorted(count.items(), key=lambda x: x[1], reverse=True)
# 输出前10个出现次数最多的人物
for i in range(10):
print(result[i])
```
注意:需要将代码中的“西游记.txt”替换为实际的文本文件路径。
Python西游记人物出场统计
Python 西游记人物出场统计可以通过文本分析和数据处理来实现。以下是一种可能的方法:
1. 获取《西游记》的文本数据,可以从网络上下载或者通过网络爬虫获取。
2. 使用 Python 中的正则表达式或其他文本处理库,将文本数据中的人物名字提取出来,并存储到一个列表中。
3. 遍历列表,使用 Python 中的字典数据结构来统计每个人物出场的次数。
4. 对字典按照出场次数进行排序,输出排名前几的人物以及他们的出场次数。
以下是一个简单的代码示例:
```python
import re
# 读取文本文件
with open('journey_to_the_west.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用正则表达式提取人物名字
pattern = re.compile('[\u4e00-\u9fa5]{2,4}(?:·[\u4e00-\u9fa5]{2,4})*')
names = re.findall(pattern, text)
# 统计人物出现次数
name_dict = {}
for name in names:
if name in name_dict:
name_dict[name] += 1
else:
name_dict[name] = 1
# 按照出场次数排序
sorted_names = sorted(name_dict.items(), key=lambda x: x[1], reverse=True)
# 输出前10个人物及出场次数
for name, count in sorted_names[:10]:
print(name, count)
```
需要注意的是,这个代码示例只是一个简单的实现,对于一些复杂的情况,例如人物名字有别名或者同名等,需要进行更加细致的处理。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)